JSON

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方法会忽略对象的不可遍历属性。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 引言 曾经有一段时间,XML是互联网上传输结构化数据的事实标准。Web服务的第一次浪潮很大程度上都是建立在XML之...
    DHFE阅读 701评论 0 0
  • 0、对于 HTTP 协议而言,HTML、CSS、JS、JSON 的本质都是什么? HTML就是符合HTML语法的字...
    怎么昵称阅读 1,680评论 0 3
  • 转自http://www.cnblogs.com/mcgrady/archive/2013/06/08/31277...
    WangYatao阅读 6,651评论 1 4
  • 大家好~ 我是一枚正直纯洁的苦逼程序员!!!!! 1.背景介绍 什么是JSON JSON (JavaScript ...
    Meetin空白阅读 6,832评论 1 1
  • 使用数组拼接出如下字符串 ,其中styles数组里的个数不定 写出两种以上声明多行字符串的方法 例如: 补全如下代...
    Tuuu阅读 228评论 0 0

友情链接更多精彩内容