当JSONObject中的value=null时,key竟然会消失?
【摘要】
我们每天都在用JSON,但JSON中的一些坑你们都知道吗?
比如,
JSON的value值为null时,key会直接没了?
value为Date类型时,JSON.toJSONString打印出来的是时间戳,取出来的却是Date?等。
废话不多说,直接上代码
public static void main(String[] a...
我们每天都在用JSON,但JSON中的一些坑你们都知道吗?
比如,
JSON的value值为null时,key会直接没了?
value为Date类型时,JSON.toJSONString打印出来的是时间戳,取出来的却是Date?等。
废话不多说,直接上代码
public static void main(String[] args) {
demoJSON();
// demoMap();
}
/**
* JSON单元测试接口
*/
public static void demoJSON() {
JSONObject json = new JSONObject();
json.put("date",new Date());
json.put("demo","");
json.put("key",null);
System.out.println("json.toString:" + json.toJSONString());
String keyDate = json.get("date") + "";
String demo1 = json.get("demo") + "";
String key1 = json.get("key") + ""; //这里转成了String
String key2 = json.getString("key");
String key1str = key1.toString(); //未报错
// String key2str = key2.toString(); //报错:java.lang.NullPointerException
System.out.println("json -- keyDate:" + keyDate);
System.out.println("json -- key1:" + key1);
System.out.println("json -- key2:" + key2);
System.out.println("json -- key1str:" + key1str);
// System.out.println("json -- key1str:" + key1str);
System.out.println("");
}
//打印出来的
json.toString:{"date":1573971907724,"demo":""}
json -- keyDate:Sun Nov 17 14:25:07 CST 2019
json -- key1:null
json -- key2:null
json -- key1str:null
可见,
1.JSONObject的value对以格式date存放的数据,toJSONString时显示为时间戳;
2.如果value为null时,key将直接被取消,get到null值;
所以我们在开发过程中,往JSONObject中赋值时,一定要先判断该值是否为null,及时处理。
断点来看一下:
文章来源: chensj.blog.csdn.net,作者:_陈哈哈,版权归原作者所有,如需转载,请联系作者。
原文链接:chensj.blog.csdn.net/article/details/103108427
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)