JSON与null的解惑_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JSON与null的解惑

JSON与null的解惑

 2014/4/17 12:24:50  borglee  程序员俱乐部  我要评论(0)
  • 摘要:从做程序到现在,用JSON也用了好些年了。突然发现JSON在put空值时有时会有key而有时又不会有。为了解除这个疑惑我做了以下测试。我用的包是:json-lib-2.4-jdk15.jar例一:publicstaticvoidmain(String[]args){JSONObjectjson=newJSONObject();json.put("key",null);System.out.println(json);}可以看到,控制输出:{}由此可见,如果put一个空指针(null)给JSON
  • 标签:

从做程序到现在,用JSON也用了好些年了。突然发现JSON在put空值时有时会有key而有时又不会有。为了解除这个疑惑我做了以下测试。 我用的包是:json-lib-2.4-jdk15.jar

?

例一:

class="java">public static void main(String[] args) {
        JSONObject json = new JSONObject();
        json.put("key", null);
        System.out.println(json);
}

?可以看到,控制输出:{}

由此可见,如果put一个空指针(null)给JSON,JSON会自动屏蔽此key不会有任何处理。

?

我们再来看看另外一个例子

?

例二:

 public static void main(String[] args) {
        JSONObject json = new JSONObject();
        String value = "null";
        json.put("key", value);
        System.out.println(json);
 }

?控制台输出:{"key":null}

?

在例二中,我们将String类型的字符串value的值设置为“null”。此时JSON会带有key及value存在。大家请注意看value为null。并不是“null”不带引号。我猜测应该是JSON自动将字符串“null”转换为可识别的空值。如果我们将value的值设置为非“null”的任何字符,JSON都会带有引号。

?

?

综上所述:如果需要在value为空时不显示key,则可以直接传递null。但是如果需要不管在value是否为空时都带有key则需要手动将null转换为“null”字符串即可。

?

才疏学浅,有什么不正之处。希望高手赐教!

  • 相关文章
发表评论
用户名: 匿名