JSON 全称“JavaScript Object Notation”,译为“JavaScript 对象简谱”或“JavaScript 对象表示法”,是一种轻量级的、基于文本的、开放的数据交换格式,在 Web 开发领域有着举足轻重的地位,如果您想在 Web 开发领域大展身手的话,就必须了解 JSON。
JSON 是最受欢迎的、使用最广泛的数据交换格式之一,主要用来在网络中传输数据。
数据交换是指,两个设备之间建立连接并互相传递数据的过程。
JSON 是一种纯字符串形式的数据,它本身不提供任何方法(函数),非常适合在网络中进行传输。JavaScript、PHP、Java、Python、C++ 等编程语言中都内置了处理 JSON 数据的方法。
JSON 是基于 JavaScript的一个子集,是一种开放的、轻量级的数据交换格式,采用独立于编程语言的文本格式来存储和表示数据,易于程序员阅读与编写,同时也易于计算机解析和生成,通常用于在 Web 客户端(浏览器)与 Web 服务器端之间传递数据。
在 JSON 中,使用以下两种方式来表示数据:
{ }
定义。在每个键/值对中,以键开头,后跟一个冒号:
,最后是值。多个键/值对之间使用逗号,
分隔,例如{"name":"C语言","url":"http://c"}
;[ ]
定义,数组中每个值之间使用逗号,
进行分隔。{
"Name":"C语言",
"Url":"http://c/",
"Tutorial":"JSON",
"Article":[
"JSON 是什么?",
"JSONP 是什么?",
"JSON 语法规则"
]
}
JSON 并不是唯一能够实现在互联网中传输数据的方式,除此之外还有一种 XML 格式。
JSON 比 XML 的可读性更高,而且 JSON 更加简洁,更容易理解。
与 XML 相比,JSON 具有以下优点:
JSON 数据可以存储在 .json 格式的文件中(与 .txt 格式类似,都属于纯文本文件),也可以将 JSON 数据以字符串的形式存储在数据库、Cookie、Session 中。
所谓同源是指域名、协议、端口都相同。
通过 JSONP,您可以避开浏览器的同源策略,进行跨域请求。JSONP 是利用 HTML 标签的 src 属性引用资源不受同源策影响的特性来实现的,实现步骤如下:
在请求地址中拼接一个回调函数,得到一个新的地址,将这个新地址赋值给
简单数据类型:string(字符串)、number(数字)、boolean(布尔值)和 null(空);
复杂数据类型:Array(数组)和 Object(对象)。
在 JSON 中使用对象类型时,有以下几点需要注意:
{ }
中;" "
将键包裹起来;{
"website": {
"name" : "C语言",
"url" : "http://c.bian/"
}
}
另外,JSON 对象中可以嵌套其它的任意类型,例如对象、数组等,如下例所示:
// 键/值对中,键必须使用双引号定义,值若是字符串类型也必须使用双引号定义
{
"name": "C语言中",
"age": 18,
"url": "http://c.bian/",
"course": {
"title": "JSON教程",
"list": [
"JSON是什么?",
"JSON语法规则",
"JSON数据类型" // 这个地方不能添加逗号,因为它是数组中最后一个值
] // 这个地方也不能添加逗号,因为它是对象中最后一个键/值对
} // 这个地方也不可以有逗号,因为它也是对象的最后一个键/值对
}
数组是值的有序集合,需要使用方括号[ ]
定义,方括号中为数组中的若干值,值可以是 JSON 中支持的任意类型(例如字符串、数字、布尔值、对象、数组等),每个值之间使用逗号,
分隔开,具体语法格式如下:
{
"array":[
{
"name":"C语言",
"url":"http://c.bian/",
"course":"JSON教程"
},
[
"JSON是什么?",
"JSON语法规则",
"JSON数据类型"
],
"JSON",
18,
true
]
}
在 JSON 中使用数组时,有以下几点需要注意:
[ ]
定义;,
进行分隔;不允许添加注释,是因为 JSON 主要是用来存储数据的,过多的注释会对数据的可读性造成影响,同时也会造成数据体积变大,进而影响数据传输、解析的速度。
JSON Schema 是一个描述和验证 JSON 数据结构的强大工具,我们可以把 JSON Schema 看作是一种规范,这个规范中规定了 JSON 数据的结构、键的命名、值的类型等等,通过规范可以校验指定的 JSON 数据,保证数据的准确。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZrb1gui-1649339661823)(C:\Users\swl\AppData\Roaming\Typora\typora-user-images\image-20220407215301628.png)]
数据结构的强大工具,我们可以把 JSON Schema 看作是一种规范,这个规范中规定了 JSON 数据的结构、键的命名、值的类型等等,通过规范可以校验指定的 JSON 数据,保证数据的准确。