当正常使用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();
搞定。
在使用Gson库处理包含自定义对象作为Map键的序列化和反序列化时,可能会遇到异常`ExpectedBEGIN_OBJECTbutwasSTRINGatline1column15path$.indexMap.`。为了解决这个问题,只需在创建Gson实例时启用复杂Map键的序列化:`Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();` 这一改动能确保Map对象正确地被序列化和反序列化。
2372

被折叠的 条评论
为什么被折叠?



