JSON的格式是有一组键值对形式的内容出现的,具体示例如下:
{
"conference":"OSCON",
"speechTitle":"JSON at Work",
"track":"Web APIS"
}
名称-值对具有以下特性:
在上面说到了名称-值对的数据类型。类型包括以下几种
对象由名称-值组成。
示例1:展示一个地址的对象
{
"address":{
"line1":"55 any street",
"city":"Denver",
"counttry":"USA"
}
}
示例2:展示一个带有数组的对象
{
"user":{
"firstName":"zhang",
"lastName":"san",
"top":[
"JSON",
"REST",
"API"
]
}
}
对象具有以下特性:
示例:一个内嵌其他对象和数组的数组,该数组描述了包含标题、长度和摘要信息的会议报告
{
"presentations":[
{
"title":"JSON at work",
"length":"90 min",
"abstract":[
"JSON is more than just a simple replacement for XML when you make an AJAX call"
],
"trak":"web apis"
},
{
"title":"JSON at work",
"length":"90 min",
"abstract":[
"JSON is more than just a simple replacement for XML when you make an AJAX call"
],
"trak":"web apis"
}
]
}
数组具有以下特征:
下面展示一些合法的字符串
[
"fred",
"fred\t",
"\b",
"",
"\t",
"\u004a"
]
注意:在这里显示的是源码,在实际运行中并不是这样的,对应如下
[ "fred", "fred ", "", "", " ", "J" ]
字符串具有以下特征:
JSON字符串还可以包含由反斜杠转义的字符
\" 双引号
\\ 反斜杠
\/ 正斜杠
\b 退格
\f 换页
\n 换行
\r 回车
\t Tab制表符
\u 后跟4个十六进制数字表示一个Unicode字符
以下展示一些合法的JSON数组
{
"age":24,
"a":299.99,
"a1":-1,
"b":0.02,
"c":1.23e11,
"c2":1.13e+11,
"d":6.023E23,
"d1":6.023E+23,
"e":10e-3,
"e":10E-3
}
注意:在这里显示的是源码,在实际运行中并不是这样的,对应如下
{ "age":24, "a":299.99, "a1":-1, "b":0.02, "c":123000000000, "c2":113000000000, "d":602300000000000000000000, "d1":602300000000000000000000, "e":0.01 }
数值遵循JavaScript的双精度浮点数格式,并且具有以下特征
展示JSON的布尔值
{
"flag":true
}
布尔值具有以下特征:
从技术上说,null并不是一种值类型,而是JSON中的一个特殊值。
{
"address":{
"line1":"555",
"line2":null
}
}
null具有以下特性:
一言以避之,JSON中没有注释。
在JSON刚开始时是支持注释的,在后面不久就移除了注释:
在JSON标准文档中,.json
就是文件系统中存储JSON的文件后缀名。
在媒体类型(MIME)中,文件传递格式为application/json
。
API设计者对JSON使用者提及简单说明了三点:
属性名中命名规范遵循以下两点要求:
当使用小驼峰命名法时,属性名是由单个或多个词拼接而成的一个属性名,其中除第一个此词外,其余每个词的第一个字符开头大写
开发者考虑到使用JSON的程序员们可能来自不同国家,即使在一家公司也会存在使用不同日期格式的。从而采用所有时区一致的日期/时间处理机制并保持互操作性。
{
"dateRegistered":"2020-08-30T23:46:21-08:00"
}
google maps等地址信息API以及与地理信息系统相关的其他API会用到经纬度数据。为了保持一致,Google的JSON编码规范经纬度数据时遵循ISO 6709标准。
{
"empireStateBuliding":"40.748747-73.985547"
}
原文:https://www.cnblogs.com/xianbeier/p/13702936.html