中文名:JS键值对数据 英文名:JavaScript Object Notation
JSON是一种常用的数据格式,其简洁和清晰的层次结构有效地提升了网络传输效率,很多编程语言都支持JSON格式的数据交换。
JSON 相比于 XML 来说,更小、更快,更易解析。
JSON数据
{ "kind": "grape", "color": "red", "quantity": 12, "tasty": true
}
XML数据(XML 被设计用来传输和存储数据,其焦点是数据的内容)
<?xml version="1.0" encoding="UTF-8" ?>
<kind>grape</kind>
<color>red</color>
<quantity>12</quantity>
<tasty>true</tasty>
JavaScript对象
let fruit = { kind: "grape", color: "red", quantity: 12, tasty: true
};
JSON对象(与JavaScript对象的唯一区别就是属性名带着双引号,变成字符串了)
可以清楚的看到,JSON是基于JavaScript对象语法的数据格式,所以所有的JSON对象都是JavaScript对象。
let jsonObjectFruit = { "kind": "grape", "color": "red", "quantity": 12, "tasty": true
};
JSON字符串(与JSON对象的区别就是在{}前后加了' ')
let jsonStringFruit = '{ "kind": "grape", "color": "red", "quantity": 12, "tasty": true
}';
JSON字符串与JSON对象之间的转化
Ⅰ、JSON字符串→JSON对象(反序列化)
let jsonFruitObject = JSON.parse(jsonStringFruit);
Ⅱ、JSON对象→JSON字符串(序列化)
let jsonStringFruit = JSON.stringify(jsonObjectFruit);
什么是序列化?
序列化 (Serialization)是将对象的状态信息转化为可以存储或传输的形式的过程。(官方)
序列化可以被理解为将数据转化为字符串的过程。(简化,反序列化则相反)
e.g.: Java 序列化是一种将对象转换为字节流的过程,以便可以将对象保存到磁盘上,将其传输到网络上,或者将其存储在内存中,以后再进行反序列化,将字节流重新转换为对象。对于后端来讲,序列化即Java对象→JSON字符串,反序列化即JSON字符串→Java对象。后端一般会通过@responseBody注解将 “return Java对象” 转化为 “JSON对象”,传到前端。