fastjson JSON.parseObject(jsonStr,obj.class),obj中含有json字符串时序列化问题

nfs0ujit  于 2021-11-27  发布在  Java
关注(0)|答案(1)|浏览(444)

在调用JSON.parseObject(jsonStr,obj)时,发现当obj里面还含有一个json字符串时,解析是发现这个json字符串中为null值的字段,也不会显示在obj的toString中。例如:
public class JsonObj {

String key;
/**
 * 这也是一个json字符串
 */
String value;

public String getKey() {
    return key;
}

public void setKey(String key) {
    this.key = key;
}

public String getValue() {
    return value;
}

public void setValue(String value) {
    this.value = value;
}

@Override
public String toString() {
    return "JsonObj{" +
            "key='" + key + '\'' +
            ", value='" + value + '\'' +
            '}';
}

}

public class FastJsonTest {

public static void main(String[] args) {
    String jsonStr = "{\"key\": \"jsonTest\",\"value\": {\"name\": null,\"age\": 100}}";
    JsonObj jsonObj = JSON.parseObject(jsonStr, JsonObj.class);
    System.out.println("parse前:" + jsonStr);
    System.out.println("parse后:" + jsonObj);
}

}

请问这种情况有什么可以让他保持value里面的null值不被去掉嘛

pgvzfuti

pgvzfuti1#

这是输出结果:
parse前:{"key": "jsonTest","value": {"name": null,"age": 100}}
parse后:JsonObj{key='jsonTest', value='{"age":100}'}

相关问题