Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >当JSONObject中的value=null时,key竟然会消失?

当JSONObject中的value=null时,key竟然会消失?

作者头像
陈哈哈
发布于 2020-07-03 08:23:45
发布于 2020-07-03 08:23:45
2.9K00
代码可运行
举报
文章被收录于专栏:MySQL入坑记MySQL入坑记
运行总次数:0
代码可运行

我们每天都在用JSON,但JSON中的一些坑你们都知道吗?

比如,

JSON的value值为null时,key会直接没了?

value为Date类型时,JSON.toJSONString打印出来的是时间戳,取出来的却是Date?等。

废话不多说,直接上代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	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("");

	}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//打印出来的
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,及时处理。

断点来看一下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Fastjson 使用
fastjson 是阿里巴巴的开源 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean序列化为JSON字符串,也可以从 JSON 字符串反序列化到 JavaBean。
acc8226
2022/05/17
2K0
net.sf.json.JSONException: null object_json数组转json对象
在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构:
全栈程序员站长
2022/11/08
6.1K0
net.sf.json.JSONException: null object_json数组转json对象
【JSON解析】浅谈JSONObject的使用[通俗易懂]
在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构:
全栈程序员站长
2022/09/18
5.3K0
【JSON解析】浅谈JSONObject的使用[通俗易懂]
java中字符串String格式转化成json格式[通俗易懂]
在开发中,经常是前端发送一串数据过来之后,是通过一个参数带着一串值过来,这一串值是String 格式的,但是里面的内容其实是json格式类型的,所以拿到值之后就要将该值转化成json格式,然后获取里面指定的key就可以拿到该值了。
全栈程序员站长
2022/09/25
21.1K0
java中字符串String格式转化成json格式[通俗易懂]
用kotlin打印出漂亮的android日志(三)——基于责任链模式打印任意对象
SAF-Kotlin-log 是一个Android的日志框架,这几天我抽空重新更新了一下代码。
fengzhizi715
2018/08/24
1.5K0
用kotlin打印出漂亮的android日志(三)——基于责任链模式打印任意对象
fastjson的JSONArray和JSONObject[通俗易懂]
java和js中JSONObject,JSONArray,Map,String之间转换——持续更新中
全栈程序员站长
2022/06/26
2.2K0
fastjson的JSONArray和JSONObject[通俗易懂]
复杂数据的几种遍历方式(有点绕)
复杂数据的遍历方式包括循环遍历、递归遍历、迭代器遍历、递归迭代遍历、深度优先遍历(DFS)、广度优先遍历(BFS)、Map/Reduce遍历、并行遍历以及随机遍历。这些方式用于访问和处理不同类型的数据结构,如数组、树、图等。选择适当的遍历方式可以提高处理效率和性能。复杂数据的遍历方式包括循环遍历、递归遍历、迭代器遍历、递归迭代遍历、深度优先遍历(DFS)、广度优先遍历(BFS)、Map/Reduce遍历、并行遍历以及随机遍历。这些方式用于访问和处理不同类型的数据结构,如数组、树、图等。选择适当的遍历方式可以提高处理效率和性能。
默 语
2024/11/20
560
java JsonObject遍历
方法: Iterator iter = jsonInfo.entrySet().iterator();
用户7741497
2022/03/21
7.5K1
map转换成JSON的方法
——————-===————————-附–MAP的ASCII排序———————–===————————
全栈程序员站长
2022/08/31
2K0
踩坑:HashMap与String字符串互转的问题
当我们有需求将HashMap转为Json格式的String时,切记不要使用HashMap的toString()方法,需要使用FastJson/Gson将HashMap转为String。如果使用toString()方法进行转换时,是无法将字符串再转为HashMap的。它只会出现序列化报错:
关忆北.
2022/05/05
9100
踩坑:HashMap与String字符串互转的问题
杨老师课堂之零基础学习JSON知识点
演示代码: /** * 演示JSON-LIB小工具  */ public class Demo1 { /* * 当map来用 */ @Test public void fun1() { JSONObject map = new JSONObject(); map.put("name", "zhangSan"); map.put("age", 23); map.put("sex", "male"); String s = map.toString(); System.out.println(s); } /* * 当你已经有一个Person对象时,可以把Person转换成JSONObject对象 */ @Test public void fun2() { Person p = new Person("liSi", 32, "female"); // 把对象转换成JSONObject类型 JSONObject map = JSONObject.fromObject(p); System.out.println(map.toString()); } /** * JSONArray */ @Test public void fun3() { Person p1 = new Person("zhangSan", 23, "male"); Person p2 = new Person("liSi", 32, "female"); JSONArray list = new JSONArray(); list.add(p1); list.add(p2); System.out.println(list.toString()); } /** * 原来就有一个List,我们需要把List转换成JSONArray */ @Test public void fun4() { Person p1 = new Person("zhangSan", 23, "male"); Person p2 = new Person("liSi", 32, "female"); List<Person> list = new ArrayList<Person>(); list.add(p1); list.add(p2); System.out.println(JSONArray.fromObject(list).toString()); } }
杨校
2018/12/24
6270
JSONObject应用Json字符串和Object对象之间的转换,Map封装数据思路
JSONObject应用Json字符串和Object对象之间的转换,Map封装数据思路
oktokeep
2024/10/09
1580
SpringBoot与Loki的那些事
因为网上好多都没有通过Loki的API自己实现对日志监控系统,所以我就下定决心自己出一版关于loki与springboot的博文供大家参考,这个可以说是比较实用,很适合中小型企业。因此我酝酿了挺久了,对于loki的研究也比较久,希望各位读者能有新的收获。
怒放吧德德
2022/11/13
1.3K0
FastJson 笔记
观察该类的继承与实现关系,不难发现,JSONObject 实现了 Map 接口,而 json 对象中的数据都是以”键:值”对形式出现,可以猜想, JSONObject 底层操作是由Map实现的。
Remember_Ray
2020/03/09
4.5K0
FastJson的使用
FastJson 的Wiki在这里:https://github.com/alibaba/fastjson/wiki/
bear_fish
2018/09/19
1.6K0
Map<String,Object>转为JSONObject ,JSONObject 转为JsonObject,JsonObject转为JsonElement
package com.tianjian.property.jieshuns.service;
全栈程序员站长
2022/08/28
3.1K0
fastjson解析null值问题: 解决 null的属性不显示问题
null对应的key被过滤掉;这明显不是我们想要的结果,这时我们就需要用到fastjson的SerializerFeature序列化属性:
一个会写诗的程序员
2021/12/16
2.9K0
java中json的使用和解析[通俗易懂]
  下载地址(maven仓库):https://mvnrepository.com/artifact/org.json/json/20180813
全栈程序员站长
2022/09/07
2.9K0
java中json的使用和解析[通俗易懂]
详解如何使用JSONObject生成和解析JSON
(2)Array表示数组,以中括号"[]"括起来,元素之间以逗号分隔,元素可以为任意类型。
挨踢小子部落阁
2023/03/16
1.8K0
详解如何使用JSONObject生成和解析JSON
Java对象,Map,List,Set数组等相互转换大全(详细讲解,附代码,讲解案例)
本人记录,因为基础比较差整理出来方便自己学习; 同样也希望可以对大家有帮助,有可以优化的地方的意见和建议,欢迎提出,鄙人虚心接受,认真改正;
默 语
2024/11/20
1790
Java对象,Map,List,Set数组等相互转换大全(详细讲解,附代码,讲解案例)
推荐阅读
相关推荐
Fastjson 使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验