JSON 总结

什么是 JSON?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON 是一种嵌套层级结构,可以通过 JavaScript 进行解析。

在 JSON 中:

  • 数据是以键值对的形式存储的
  • 不同数据项之间以逗号分隔,最后一个数据项后面不需要逗号
  • 通过大括号来保存 JSON 对象
  • 在 JSON 对象内容,数据的值也可以是数组,通过中括号来保存数组

JSON 的值

JSON 的值可以是以下数据结构:

  • 数值(整数或浮点数)
  • 字符串(在双引号中):是由双引号包围的任意数量 Unicode 字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
  • 逻辑值(true 或 false)
  • 数组(在中括号中):一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
  • 对象(在大括号中):数组是值(value)的有序集合。对象是一个无序的“‘名称 / 值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称 / 值’ 对”之间使用“,”(逗号)分隔。
  • null

JSON 对象方法

JSON.stringify()

JSON.stringify() 方法用于将一个字符串转为 JSON 字符串。该字符串符合 JSON 格式,并且可以被 JSON.parse() 方法还原。

JSON.parse()

JSON.parse() 方法用于将 JSON 字符串转换成对应的值。

JSON 和 JavaScript 的关系

JSON 是依据 JavaScript 文字对象表示法的子集所创建的数据交换格式。

JavaScript 的对象是面向对象语言的一种表示方式,Json 则是数据传输的一种格式(比如 XML),所以二者之间在定义上没有很大关系;但是二者的格式书写非常相似(有一个细节就是:JS 对象的 key 是可以使用引号也可以不使用;可是 Json 格式则必须对 key 使用引号),所以 JS 对象与 Json 非常容易转换。

JSON 和 JavaScript 类型的区别

JavaScript 类型 JSON 的不同点
对象和数组 属性名称必须是双引号括起来的字符串;最后一个属性后不能有逗号。
数值 禁止出现前导零,JSON.stringify 方法自动忽略前导零,而在 JSON.parse 方法中将会抛出 SyntaxError;如果有小数点, 则后面至少跟着一位数字。
字符串 字符串必须用 双引号 括起来, 只支持某些空白字符:制表符,回车,换行,空格

JSON 的适用场景

  • API 外部访问接口,一般数据交互格式通常为 JSON
  • Ajax 中实现异步加载