什么是JSON
JavaScript Object Notation JS对象简谱,是一种轻量级的数据交换格式
而JSON数据就是一段由一堆大括号,中括号,逗号,以及键值对组成的一串字符
JSON的数据结构
- null: 表示为 null
- boolean: 表示为 true 或 false
- number: 一般的浮点数表示方式
- string: 表示为 “…”
- array: 表示为 数组[ … ]
但是[ ]的键.getClass()获取的是ArrayList类型 - object: 表示为 对象{ …}
JSON的对象格式
-
一个对象,由一个大括号{ }表示
括号中 通过键值对来描述对象的属性与函数
(可以理解为,大括号中,包含的是一个个的键值对.) -
格式:
键与值之间使用冒号连接,多个键值对之间使用逗号分隔
键值对的键应使用引号引住(通常Java解析时,键不使用引号会报错.而IS能正确解析.)
键值对的值,可以是JS中的任意类型的数据
JSON的数组格式
- 在JSON格式中数组可以与对象嵌套使用
[元素1,元素2,…]
元素可以是对象
Java与JSON的转换
企业中后端人员经常用JSON传递一个对象
通过将一个Java对象通过.toJSON()转换成一个JSON字符串,另一个拿到这一串字符串之后
然后又通过.fromJSON()来拿到对象这样的一个过程.
GSON
- 将对象转换成json字符串 很简单,只需要四步:
- 导入jar包
- 创建GSON对象
- 创建要转换的对象
- 转换
//创建GSON对象
Gson g = new Gson();
//创建要转换的对象
Person p = new Person("张三",18);
//转换
String s = g.toJson(p);
- 将JSON字符串转换回对象
Person person = g.fromJson("{\"name\":\"张三\",\"age\":18}", Person.class);
FastJSON
- 将对象转换成json字符串
- 导入jar包
- 创建要转换的对象
- 转换
//创建要转换的对象
Person p = new Person("张三",18);
//转换
String s = JSON.toJSONString(p);
- 将JSON字符串转换回对象
String s1 = JSON.parseObject("\"张三\",18", String.class);
- 将JSON字符串转换回数组
List<String> strings = JSON.parseArray("[\"123\",\"234\",\"345\"]", String.class);
jar包
度娘搜GJON,FastJSON,找到github的开源地址,点进去就有的download
有什么不对欢迎指正,后期深入了解也会进行更改