前端工程师手册

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字符串

参考资料