我正在使用GSON为我的一个应用程序序列化和反序列化JSON / JAva对象。我正在使用serializeNulls,因为我的一些值需要作为null发送到Web服务,而有些我不想成为NULL。所以我在我的setter / getter中尝试了我不需要null,我检查该值是否为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();
任何想法如何避免某些字段为空,并使用setter / getter方法或其他方式设置空白。
答案 0 :(得分:0)
您可以使用默认值mID
和正确的setter方法
示例代码:
class MyId{
private String mID="";
public void setId(final String id) {
if(id != null) {
mID = id;
}
}
public String getId() {
return mID;
}
}
...
//JSON string to Object
MyId myId=new Gson().fromJson("{}", MyId.class);
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(myId));
...
// Object to JSON string
MyId myId = new MyId();
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(myId));
输出:
{
"mID": ""
}