sud*_*hra 5 java rest apache-camel camel-cxf
我在JSON下面了解
{"id":"1","value":"some value"}
{"id":"2","value":null}
{"id":"3"}
要保存上面的JSON数据我有java类:
class myClass
{
private String id;
private String value;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中:id 2和id 3的值都为NULL
在java中,很难识别JSON中传递的空值和未传递的其他字段之间的区别,因此java pojo的默认值为NULL.
对我来说,id 2和id 3的值不应该相同.
是否可以在java中区分提供的JSON NULL和默认NULL?
最好不要区分值null
和缺失值,因为您必须问这个问题:这种区分并不容易,并且可能不适用于所有 JSON 库,尤其是在自动转换为 POJO 时。
它取决于 JSON 库是否有效,但您可以尝试向 POJO 添加一个额外的标志,该标志在调用 setter 时设置。例如这样:
class MyClass {
private String value;
private boolean isSetValue;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
isSetValue = true;
}
public boolean getIsSetValue() {
return isSetValue;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您计划序列化此 POJO,则需要getIsSetValue
从序列化中排除,并且可能需要修改 JSON 序列化程序以用于getIsSetValue
决定是否写入null
值或根本不写入值。
归档时间: |
|
查看次数: |
328 次 |
最近记录: |