当正常使用Gson进行序列化,反序化一个对象。
对象中有一个属性是 Map 对象。Map 对象的 key 是一个自定义对象。
此时,如果序列化后,进行反序列化,会报异常:
Expected BEGIN_OBJECT but was STRING at line 1 column 15 path $.indexMap.
这个 indexMap 就是这个属性的名称。
只需把 Gson gson = new Gson();
改为:
Gson gson = new GsonBuilder().enableComplexMapKeySerialization()
.create();
搞定。