【发布时间】:2014-10-06 09:27:35
【问题描述】:
我正在使用 GSON 为我的一个应用程序序列化和反序列化 JSON/JAva 对象。我正在使用 serializeNulls,因为我的一些值需要作为 null 发送到 Web 服务,而有些我不想为 NULL。因此,我在不需要 null 的 setter/getter 中尝试了检查该值是否为 null,如果它为 null,则为其设置 "" 空白。但是当我使用 gson.toJson() 方法将我的对象反序列化为 json 时,它仍然为我提供了 null 值。
private String mID;
public void setId(final String id) {
if(id == null) {
id = "";
}
mID = id;
}
public String getId() {
if(mID == null) {
mID = "";
}
return mID;
}
Gson gson = new GsonBuilder().serializeNulls().create();
知道如何避免某些字段为 null 并使用 setter/getter 方法或其他方式设置空白“”。
【问题讨论】:
-
Gson 不使用 getter 来访问要序列化的字段。只要确保 mID 永远不会为空。您在 setter 中确定了这一点,但也许您有一个构造函数或其他方法将其设置(或保留)为 null。
标签: java serialization gson deserialization json-deserialization