【发布时间】:2019-08-21 23:18:53
【问题描述】:
我正在使用gson.fromJson(json,class) 将 json 转换为 Java 对象。
如果我没有在 json 中传递参数(int 除外),则将其反序列化为 null,但对象中的 int 变量将反序列化为 0。
所以我的问题是,是否有任何注释或我可以使用的任何方式,所以如果我没有在 json 中传递 int 参数,它不会被反序列化为 0。理想情况下,它不会显示在全部在对象中,但至少是null。
例如下面的json:{"name":"asas"}
如果我有上面的json,那么使用gson.fromJson(),会自动将id反序列化为0。
有办法消除吗?
public class Student{
String name;
int id;
//getters and setters
}
【问题讨论】:
-
那么,如果
id不在 JSON 中,您希望将其设置为什么值? -
如果参数全部被忽略会很好,但如果不可能,则为null,但我认为null也不可能。添加任何其他值都会破坏代码
-
好的,让我换个方式问。您希望将哪个
2^32可能的int值分配给int字段?Null不是int值。Ignored不是int值。也许int不是您要查找的数据类型。 -
如果您在 id 字段上使用
Integer类型而不是int,则可能为 Null,否则正如 @DawoodibnKareem 所说,id 字段必须具有一些值 -
是的,现在我意识到不应使用 int,但它已被使用,我现在无法更改。所以,没有办法,我们可以忽略设置值,如果它不存在于 json 中?