JSON 一些简单知识
本文最后更新于:2020年5月17日 晚上
概览:JSON的一些简单知识,源自《JSON必知必会》。
参考书籍:《JSON必知必会》
[美] Lindsay Bassett 著
图灵程序设计丛书
什么是JSON
- JSON:JavaScript 对象表示法(JavaScript Object Notation)。
- JSON是一种数据交换格式,被许多系统用于交换数据。
- JSON 独立于编程语言,表达数据的方式对通用的编程概念都很友好。
JSON语法
JSON基于JavaScript对象字面量,即使用了JS的对象字面量及其属性的语法表示:名称 — 值。
- 所谓字面量是指对数据值的具体表示,例如
x = 5
,5就是一个数字字面量。
- 所谓字面量是指对数据值的具体表示,例如
JSON中的
名称 — 值
对形式为"名称" : 值
。- 名称始终需要加双引号!
- 值可以是字符串、数字、布尔值、null、对象或数组。
名称 — 值
对 也称属性 — 值
对 或者键—值
对。- 值可以是字符串、数字、布尔值、null、数组或者对象。
在JSON中,为了获得最大可移植性(“以一种双方系统都兼容的方式在平台间传递信息”),应该尽量避免使用空格或特殊字符(即 a
z、09 除外的其他字符)。构建对象:将花括号加在名称 - 值对的两边来使之成为一个对象,多个名称 - 值对使用逗号来分隔。
追根溯源,JSON本身就是对象。
1 |
|
JSON的数据类型
- 数字:可以是整数、小数、负数或者指数。
- 布尔值:只能是
true
或者false
。其他形式写法都错误。 - null:表示没有值,只能使用
null
,且必须小写。 - 字符串:可由任何Unicode字符构成,必须用双引号包裹。
- 转义字符,使用反斜线来进行转义,例如双引号用
\"
。
- 转义字符,使用反斜线来进行转义,例如双引号用
- 数组:由值构成的列表或者集合。每个值都可以是字符串、数字、布尔值、对象或数组中的任何一种,数组必须被方括号
[]
包裹,且值与值之间用逗号隔开。 - 对象:使用逗号分隔的,由名称-值构成的列表或者集合,并且使用花括号
{}
进行包裹。
数组或者对象是可以嵌套的。
JSON一个实例
1 |
|
其他
- JSON 这种数据交换格式是可以作为独立的文件存在于文件系统中的。它的文件扩展名:
.json
。 - JSON 的 MIME 类型是 application/json 。
当你在传递数据时,需要提前告知接收方数据是什么类型,这就会涉及媒体类型。媒体类型也有一些你可能听过的其他称呼,如“互联网媒体类型”“内容类型”或“MIME 类型”。它使用“类型 / 子类型”这种格式来表示,比如你可能见过的 text/html 。
互联网数字分配机构(Internet Assigned Numbers Authority,IANA)维护着一个包含全部媒体类型的列表(http://www.iana.org/assignments/media-types/media-types.xhtml)。
JSON Schema(第四章)
JSON 验证器负责验证语法错误,JSON Schema 负责提供一致性检验。
JSON Schema 是数据接收方的第一道防线,也是数据发送方节约时间、
保证数据正确的好工具。JSON Schema 可以解决下列有关一致性验证的问题。
值的数据类型是否正确?
可以具体规定一个值是数字、字符串等类型。是否包含所需要的数据?
可以具体规定哪些数据是需要的,哪些是不需要的。值的形式是不是我需要的?
可以指定范围、最小值和最大值。
JSON的一些作用
- 作为数据交换格式,用于交换数据。
- 作为一种文本格式,可作为JSON文档存储数据,例如:CouchDB是一种使用 JSON 文档存储数据的NoSQL 数据库。
- 可将对象序列化为JSON或反序列化。
- 可作为配置文件。
本文只占据这本书的一半的内容,剩余关于JSON的一些应用等内容并为写出,感兴趣可以自行查阅。
书籍链接:https://pan.baidu.com/s/1gNeClwP9Is2ohtsuVPdalA
提取码:hpb9
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!