(1)JSON(Java Script Object Notation)是一种轻量级的数据交换语言,以文本字符串为基础,且易于让人阅读。(注意:XML就是一个重量级的数据交换语言)
(2)和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度,
(3)JSON采用完全独立于任何程序语言的文本格式,使JSON成为理想的数据交换语言
(4)JSON就是一串字符串 只不过元素会使用特定的符号标注。
2、JSON语法
(1){} 双括号表示对象
(2)[] 中括号表示数组
(3)"" 双引号内是属性或值
(4): 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
(5),逗号用来分隔属性或者对象
3、将一个对象构建成json数据
对象:属性:name=张三,sex=男,age= 20,score=78
(1)一个对象的json表示:
{“name”:”张三”,”sex”:”男”,”age”:20,”score”:78}
Student stu1 = new Student("张三", "男", 19, 78.5);
String js = JSON.toJSONString(stu1);
System.out.println(js);
结果:
(2)两个对象用一个数组表示,json表示为:
[{“name”:”张三”,”sex”:”男”,”age”:20,”score”:78},{“name”:”张三”,”sex”:”男”,”age”:20,”score”:78}]
Student stu1 = new Student("张三", "男", 19, 78.5);
Student stu2 = new Student("李四", "女", 21, 89);
Student[] stus = {stu1, stu2};
String js = JSON.toJSONString(stus);
System.out.println(js);
结果:
4、将JSON字符串解析成java对象
(1)json字符串装换成单个对象
String js = "{\"age\":19,\"name\":\"张三\",\"score\":78.5,\"sex\":\"男\"}";
Student stu = JSON.parseObject(js, Student.class);
System.out.println(stu);
注意:字符串里的双引号要用转义符"\"转义。
结果:
(2)json字符串转换为list集合
String js = "[{\"age\":19,\"name\":\"张三\",\"score\":78.5,\"sex\":\"男\"},{\"age\":21,\"name\":\"李四\",\"score\":89,\"sex\":\"女\"}]";
List list = JSON.parseArray(js, Student.class);
list.forEach(e -> System.out.println(e));
结果:
(3)json字符串转换为JSONArray集合
String js = "[{\"age\":19,\"name\":\"张三\",\"score\":78.5,\"sex\":\"男\"},{\"age\":21,\"name\":\"李四\",\"score\":89,\"sex\":\"女\"}]";
JSONArray parseArray = JSON.parseArray(js);
for(int i = 0; i < parseArray.size(); i++) {
JSONObject jsObj = parseArray.getJSONObject(i);
String name = jsObj.getString("name");
System.out.println(name);
}
结果: