JSON简介

什么是JSON?

 

JSON是JavaScript Object Notation的缩写,它表示用于在实体之间存储和共享数据的标准化语法,派生自JavaScript编程语言(不要与Java编程语言混淆)。

JSON之所以受欢迎,是因为它易于人类阅读和编辑,并且易于被机器使用。另一个优点是JSON它不受JavaScript语言的约束,它可以被广泛的编程语言使用,最着名的是Java,PHP,Python和Ruby。

JSON实体既可以作为独立文件存在,通常具有.json扩展名,也可以作为JSON字符串包含在引号内的另一个文件中。它也可以分配给变量。

与XML相比,JSON提供了更好的可读性,减少了格式化的麻烦,占用空间更小,从而减少了传输的字节数。

 

结构体

 

结构非常简单:

“名字”:价值

名称必须始终为字符串。示例:“年龄”,“出生日期”,“出生日期”,“第二地址”。

值可以是不同的类型,布尔值,数字,字符串,数组,对象或null。例:

 

{

“用户”:“艾玛”,

“连接”:“安全”,

“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”,“FTP”],

“vpn”:false,

“userID”:215

}

说明:

 

{

“user”:“Emma”,< – 这是一个字符串

“连接”:“安全”,< – 这也是一个字符串

“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”,“FTP”],< – 这是一个字符串列表

“vpn”:false,< – 这是一个布尔值

“userID”:215 < – 这是一个数字

}

 

为了使用JSON,您必须了解一些基本规则,其他一切都会很自然。

– JSON对象必须用大括号括起来,即使它是嵌套的(我稍后会解释嵌套意味着什么){}

– 名称必须在引号之间   “”

– 名称和值必须用冒号分隔

– 值:

– 字符串必须在引号之间   “”

– 布尔和数字没有标点符号

– 列表必须在方括号[]之间

– 在’name:value’对之间必须有一个逗号

 

JSON不关心其元素之间的空白,因此您可以通过多种方式格式化代码:

 

{

“用户”:“艾玛”,

“连接”:“安全”,

“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”,“FTP”],

“vpn”:false,

“userID”:215

}

 

是相同的

 

{“user”:“Emma”,“connection”:“secured”,“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”,FTP“],”vpn“:false,”userID“:215}

 

或者作为

 

{“user”:“Emma”,“connection”:“secure”,

“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”,FTP“],”vpn“:false,

“userID”:215}

 

为了使人类组件更舒适,您将看到大多数JSON实体在第一个示例中编写,每个元素在一行上。

 

嵌套元素

 

到目前为止,这么好,没有什么比这更复杂,但为了实现复杂的实用程序,我们可以将元素组合得更多。

嵌套对象

当我们可以在同一个JSON中存储多个用户时,为每个用户创建一个JSON是没有意义的。在下面的示例中,对于每个用户,存在一个嵌套对象,以不同颜色突出显示:

{

“艾玛”:{

“连接”:“安全”,

“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”,“FTP”],

“vpn”:false,

“userID”:215

}

“约翰”:{

“连接”:“安全”,

“proxy_options”:[“SOCKS5”,“SSL”,“FTP”],

“vpn”:是的,

“userID”:216

}

“莎拉”:{

“连接”:“安全”,

“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”],

“vpn”:是的,

“userID”:217

}

“迈克尔”:{

“连接”:“安全”,

“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”,“FTP”],

“vpn”:false,

“userID”:218

}

}

 

注意每个花括号后元素之间的逗号。这是一个语法规则。

对于更复杂的用法,JSON支持嵌套数组。数组可以包含多种数据类型。这里使用了两个嵌套数组并突出显示:

 

{

“用户”:“艾玛”,

“连接”:“安全”,

“proxy_options”:[“SOCKS5”,“SSL”,“HTTP”,“FTP”],

“vpn”:false,

“userID”:215,

“服务” : [

{

“serviceID”:“P1388”,

“购买”:“03-08-2018”,

“活跃”:是的

}

{

“serviceID”:“P1903”,

“购买”:“05-09-2018”,

“活跃”:是的

}

]

}

 

JSON vs XML

 

虽然仍在使用XML格式,但JSON现在是数据编组的首选。在越来越多基于在线的人类操作和交互中,JSON获得成功是正常的。首先,JSON比XML更有效,我在这篇文章中提到了一些原因。其次,所有现代浏览器都提供内置的JSON支持。

简短的例子:

JSON

{“客户”:

[

{“name”:“Tim”,“email”:“ [email protected] ”},

{“name”:“Drew”,“email”:“ [email protected] ”},

{“name”:“Carla”,“email”:“ [email protected] ”}

]

}

 

XML

<客户>

<客户>

<名称>添</名称>

<email> [email protected] </ email>

</客户端>

<客户>

<名称>德鲁</名称>

<email> [email protected] </ email>

</客户端>

<客户>

<名称>卡拉</名称>

<email> [email protected] </ email>

</客户端>

</客户>

 

让我们总结一下JSON广泛使用XML的其他原因:

– 它更易于阅读和书写

– 它更容易学习

– 它支持数组

– 它将相同的数据存储在更少的磁盘空间中,同时使用更少的网络带宽

XML也比JSON有一些优势:

– 它允许用户显示数据,因为它是一种标记语言

– 它支持更多数据类型。沿着文本,它支持图形,图表,图像等。

– 它支持评论

 

阅读本文后,根据您的目的,我确信您知道哪种格式适合您的项目。