JSON

作者: 苦瓜_6 | 来源:发表于2018-05-03 19:09 被阅读0次

JSON格式数据

JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford提出,目的是代替繁琐笨重的XML格式。

JSON 是一种语法用来序列化对象、数组、数值、字符串、布尔值和 null 。它基于 JavaScript 语法,但与之不同:JavaScript不是JSON,JSON也不是JavaScript。

每个 JSON 对象,就是一个值。JSON 对值的类型和格式有严格的规定:

  • 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。

  • 简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。

  • 字符串必须使用双引号表示,不能使用单引号。

  • 对象的键名必须放在双引号里面。

  • 数组或对象最后一个成员的后面,不能加逗号。

  • 前导零是禁止的(在 JSON.stringify 零将被忽略,但在 JSON.parse 它将抛出 SyntaxError);小数点后必须至少有一位数字。

JSON格式数据如何表示对象

JSON对象是一个无序的「键-值」集合,对象的键名必须用双引号包裹,最后一个成员后面不能加逗号。

以下三种写法都可以表示对象:

{}

{"key1": "value1"} // string 对应 "key1",value 对应 "value1"

{"key1": "value1", "key2": "value2"}

window.JSON

window.JSON是浏览器的内置对象(本地化的JSON对象),用来检测对JSON的支持情况。

如果在旧的浏览器中使用JSON,需要JavaScript库。在JavaScript中执行解析和序列化效率往往不高,所以为了提高执行速度,现在新的浏览器原生扩展了对JSON的支持,可以直接通过JavaScript来调用JSON了。这种本地化的JSON对象被纳入了ECMAScript 5标准,成为了下一代JavaScript语言的一部分。

把JSON 格式的字符串转换为 JS 对象

JSON.parse方法用于将JSON字符串转化成对象,如果传入的字符串不是有效的JSON格式,JSON.parse方法将报错。

把 JS对象转换为 JSON 格式的字符串

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

需要注意的是:

  • 对于原始类型的字符串,转换结果会带双引号
  • 如果原始对象中,有一个成员的值是undefined、函数或 XML 对象,这个成员会被过滤。
  • 如果数组的成员是undefined、函数或 XML 对象,则这些值被转成null
  • 正则对象会被转成空对象
  • JSON.stringify方法会忽略对象的不可遍历属性。

相关文章

网友评论

      本文标题:JSON

      本文链接:https://www.haomeiwen.com/subject/yocilftx.html