JSON对象
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write.
JSON只是一个数据交换语言,只有我们将之用在string上下文的时候它才叫JSON。
什么是JSON
我们通常误以为JavaScript里面的对象字面值是JSON。它只不过是“形似”而已。实际上只有当这样的字面值是字符串的时候,才是JSON对象。比如:
// 这是JSON字符串
var foo = '{ "prop": "val" }';
// 这是对象字面量
var bar = { "prop": "val" };
而且要注意,JSON有非常严格的语法,在string上下文里{ "prop": "val" }
是个合法的JSON,但{ prop: "val" }
和{ 'prop': 'val' }
确实不合法的。所有属性名称和它的值都必须用双引号引住,不能使用单引号。另外,即便你用了转义以后的单引号也是不合法的。
序列化与反序列化
2个程序(或服务器、语言等)需要交互通信的时候,他们倾向于使用string字符串因为string在很多语言里解析的方式都差不多。所以在JavaScript里面,也提供了一个JSON
对象,目前有2个静态方法:
- JSON.parse: 用来将JSON字符串反序列化成对象
JSON.stringify:用来将对象序列化成JSON字符串
参考资料
- 深入理解JavaScript系列(9):根本没有“JSON对象”这回事!
- JSON简介以及用法汇总
原文: https://leohxj.gitbooks.io/front-end-database/content/javascript-basic/json.html