JSON必须要懂的内容
1,JSON是什么
- JSON(JavaScript Object Notation:JS对象表示法)是一种轻量级的数据交互格式,采用完全独立于编程语言的文本格式来存储和表示数据。
- JSON是JS对象的字符串表示法,本质上是一个字符串。他不是一种编程语言,他只是一种语法表示格式。(很简单)
- 前后端分离的网站中,需要用到大量的前后端数据交互,因此JSON使用非常多。
2,JSON和XML对比
- JSON更加易于阅读和编写,同时也易于浏览器的解析和生成,有效地提高网络传输效率。
- XML有更好的扩展性,JSON的扩展性不如XML,因此,配置文件的时候使用XML,而传输数据的时候使用JSON。
3,JSON文件内容
- 可以是一个单值(不能是undefined)很少用
- 可以是一个对象(对象由键值对表示)(花括号表示对象)
- 也可以是一个数组(数组由方括号来表示)
- 也可以是对象和数组的结合
4,JSON和JS对象相互转换
- JSON.parse(); 该方法把JSON格式的字符串转换为JS对象。
符合JSON格式的字符串:其中的键必须使用双引号引起来,值如果是字符型数据,使用双引号引起来。 - JSON.stringify(); 该方法把JS对象转换为JSON格式的字符串。
5,常用的JSON工具
- Jackson:使用的最多,在maven仓库中直接查找就能找到。使用
- @ResponseBody:将服务器端返回的对象转换为JSON格式数据响应回去。 加上这个注解之后,就不会跳转到视图解析器了。
ObjectMapper mapper = new ObjectMapper(); User user = new User("cjh",12); String str = mapper.writeValueAsString(user); return str;
- 如果乱码,可以修改@RequestMapping("/",produce=“application/json;charset=utf-8”)或者更改XML文件配置。
- 处理时间问题(防止出现默认的时间戳格式)
ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.WRITE_DATE_AS_TIMESTAMPS,false); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); mapper.setDateFormat(sdf); Date date = new Date(); return mapper.writeValueAsString(date);
- Fastjson:阿里巴巴的工具,也比较常用。
6,解析JSON
- 解析json数据的目的是为了将数据(动态)渲染到前端(浏览器)。
- 如果是js对象,可以直接访问,如果是json格式的字符串需要使用JSON.parse()方法转换,转换成为JS对象之后再访问。