GSON 反序列化行为
GSON deserialization behaviour
我正在将 JSON 有效负载反序列化为 POJO,在 POJO 中我有一个 HashMap (userIdMap),声明和初始化如下:
public class ObjectProvider {
private String companyId;
@Expose(serialize = true, deserialize = true)
@SerializedName("entity_id")
private String entityId;
@Expose(serialize = true, deserialize = true)
@SerializedName("url")
private String url;
private String responseTemplate;
private Map<String, String> userIdMap = new HashMap<String, String>();
public String getEntityId() {
return entityId;
}
...// REST OF CODE REMOVED FOR READABILITY
}
然而,在创建 POJO 之后,当我尝试访问 userIdMap 属性以执行 GET 操作时,我得到 java.lang.NullPointerException。关于可能出错的任何想法?
问题已解决。看起来 class 中缺少默认构造函数。添加默认构造函数并初始化 Map 后,它就可以正常工作了。
我正在将 JSON 有效负载反序列化为 POJO,在 POJO 中我有一个 HashMap (userIdMap),声明和初始化如下:
public class ObjectProvider {
private String companyId;
@Expose(serialize = true, deserialize = true)
@SerializedName("entity_id")
private String entityId;
@Expose(serialize = true, deserialize = true)
@SerializedName("url")
private String url;
private String responseTemplate;
private Map<String, String> userIdMap = new HashMap<String, String>();
public String getEntityId() {
return entityId;
}
...// REST OF CODE REMOVED FOR READABILITY
}
然而,在创建 POJO 之后,当我尝试访问 userIdMap 属性以执行 GET 操作时,我得到 java.lang.NullPointerException。关于可能出错的任何想法?
问题已解决。看起来 class 中缺少默认构造函数。添加默认构造函数并初始化 Map 后,它就可以正常工作了。