JSON简介
从百科上面拿了一段话:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
总结:json是一种轻量级数据交换格式,易于机器解析和生成,并有效地提升网络传输效率。
JSON用途
JSON主要用于数据的交互,尤其在web服务中,随着Restful设计风格被越来越多的企业采用,JSON在前后端数据交互中也越发被喜爱。
JSON 格式
JSON以key/value格式保存数据,JSON值有一下几种:
- 数字(整型和浮点型):
{"age":20,"weight":55.2}
- 字符串:
{"name":"barry","addr":"China"}
- 数组(整型数组和对象数据):
{"ages":[20,21], "persons":[{"age":20, "name":"barry"},{"age":21, "name":"harry"}]}
- 对象:
{"barry":{"age":20, "name":"barry"}}
- boolean:
{"isMale":true}
JSON储存的格式上面的几个例子差不多覆盖到了,如果有需要其他格式的可以自由组合,只要符合JSON格式要求就行,这也是JOSN受欢迎的原因之一吧,比较这么方便强大。
JSON 后端解析
阿里开源了一款强大JSON工具–FASTJSON,有兴趣的可以去看看源代码: https://github.com/alibaba/fastjson
-
引包:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.57</version> </dependency>
-
数据格式转换:FASTJSON提供了很多有用的方法转换数据格式,可以方便的将对象封装和解析以及传输
- 对象:
public class Person{ private int age; private String name; // 省略setter,getter } // 对象转json字符串 String personStr = JSON.toJSONString(person); // json字符串转对象 Person person = JSON.parseObject(personStr, Person.class);
- 集合:
// 定义集合map Map<String, Person> cacheDataMap = new HashMap<>(); // map转为json字符串 String cacheDataStr = JSONObject.toJSONString(cacheDataMap); // json字符串转map Map<String, Person> cacheDataMap = JSONObject.parseObject(cacheDataStr, new TypeReference<Map<String, Person>>(){});