gpt4 book ai didi

java - 使用 GSON 避免在 json 映射中使用原始数据类型默认值

转载 作者:行者123 更新时间:2023-12-01 22:15:05 27 4
gpt4 key购买 nike

public class Test {

public int num;
public String name;
public String email;

public Test(){

}

public int getNum() {
return num;
}

public void setNum(int num) {
this.num = num;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

}

通过使用上面的类结构,我使用 Gson 库生成 json,它工作得很好,但问题是我想避免原始数据类型默认值到 json 映射。例如

Test obj=new Test();
obj.setEmail("abc@abc.com");
obj.setName("Mike");
String json= new Gson().toJson(obj);

//输出json

{"num":0,"name":"Mike","email":"abc@abc.com"}

在输出 json num 中分配 0,这是原始数据类型 int 的默认值,我想避免 json 映射中 int 的默认原始数据类型。我想要类似于引用类型的行为。如果我不为名称或电子邮件分配值,它将不会在输出 json 中生成。

 Test obj=new Test();
obj.setName("Mike");
String json= new Gson().toJson(obj);

//输出json

 {"num":0,"name":"Mike"}

如何避免输出 json 中的原始默认值?

任何帮助将不胜感激。

最佳答案

改用这段代码,这里我把 int 改成了 Integer,并且还封装了实例变量。

private Integer num;
private String name;
private String email;

public Integer getNum() {
return num;
}

public void setNum(Integer num) {
this.num = num;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

关于java - 使用 GSON 避免在 json 映射中使用原始数据类型默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31239190/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com