JSON
什么是JSON:JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式(JavaScript提供)
特点
'[{"name":"周珍珍", "age":18},{"name":"李淑文","age":20}]'
- 数据是以键值对形式(key : value)
- key必须使用双引号包裹
- JSON字符串最外层使用单引号包裹
三种数据格式比对
Java
class Student{
private String name;
private int age;
}
Student stu1 = new Student("周珍珍", 18);
Student stu2 = new Student("李淑文", 20);
Student[] stus = {
stu1, stu2};
XML
<stus>
<stu1>
<name>周珍珍</name>
<age>18</age>
</stu1>
<stu2>
<name>李淑文</name>
<age>20</age>
</stu2>
</stus>
JSON
[{
"name":"周珍珍", "age":18},{
"name":"李淑文","age":20}]
JSON
- 优点:轻量,相同的数据量下,占用的空间更少
- 缺点:当数据量多之后,可读性变差
XML
- 优点:结构化,可读性高
- 缺点:相同的数据量下,占用的空间更多
JSON与js对象的转化
JSON字符串转js对象
var str = '{"name":"周珍珍", "age":18}';
var jsObj = JSON.parse(str);
console.log(jsObj);
注意:如果出现了不规范的JSON字符串
var str = '{name:"周珍珍", age:18}';
可以使用
eval
函数进行转化var str = '{name:"周珍珍", age:18}'; var jsObj = eval('(' + str + ')'); console.log(jsObj);
JSON字符串转js数组
var arr = '[{"name":"周珍珍", "age":18},{"name":"李淑文","age":20}]';
var jsObj = JSON.parse(arr);
console.log(jsObj);
js对象转JSON字符串
var jsObj = {
name:"周珍珍",
age:18
};
var jsonStr = JSON.stringify(jsObj);
console.log(jsonStr);//{"name":"周珍珍","age":18}
js数组转JSON字符串
var jsArr = [{
name:"周珍珍",
age:18},{
name:"李淑文",
age:20}];
var jsonStr = JSON.stringify(jsArr);
console.log(jsonStr);//[{"name":"周珍珍","age":18},{"name":"李淑文","age":20}]
Java与JSON的转化
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.42</version> </dependency>
Object –> JSONString
将Java对象转化为JSON字符串
Teacher teacher1 = new Teacher("aaa", 23, new Student("zzz", 18));
String json = JSON.toJSONString(teacher1);
System.out.println(json);//{"age":23,"name":"aaa","student":{"age":18,"name":"zzz"}}