JSONObject与null
Posted 小鸣的网络日志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSONObject与null相关的知识,希望对你有一定的参考价值。
前言
今天在写代码的时候发现在 JSON 中 由于put了key对应的value为null,结果这个JSON键值对没有输出
org.json.JSONObject
在orgJSON 中,如果直接put value会有报错提示:
org.json.JSONObject orgJSON = new org.json.JSONObject();
// IDE提示The method put(String, Collection) is ambiguous for the type JSONObject
orgJSON.put("null", null);
但是,org.json.JSONObject 提供了一个JOSNObject.NULL
orgJSON.put("JSONObject.NULL", org.json.JSONObject.NULL);
System.out.println("JSONObject.NULL : "+orgJSON);
// 控制台输出
JSONObject.NULL : {"JSONObject.NULL":null}
System.out.println(JSONObject.NULL == null);
// 控制台
false
通过查阅org.json.JSONObject的文档,发现文档是这样说的
The values can be any of these types: Boolean, JSONArray, JSONObject, Number, String, or the JSONObject.NULL object.
参考文档:https://stleary.github.io/JSON-java/org/json/JSONObject.html
net.sf.json.JSONObjcet
net.sf.json.JSONObject netJSON = new net.sf.json.JSONObject();
netJSON.put("null", null);
System.out.println("netJSON" + netJSON);
// 控制台输出 :
netJSON{}
文档中这样写的:
The values can be any of these types: Boolean, JSONArray, JSONObject, Number, String, or the JSONNull object.
但是吧
// IDE提示:net.sf.json.JSONNull cannot be resolved to a variable
netJSON.put("JSONNull", net.sf.json.JSONNull);
参考文档:http://json-lib.sourceforge.net/apidocs/jdk15/net/sf/json/JSONObject.html
以上是关于JSONObject与null的主要内容,如果未能解决你的问题,请参考以下文章
JSONObject optString或者getString方法取null问题
net.sf.json.JSONOBJECT.fromObject 与 com.alibaba.fastjson.JSONObject.parseObject