json的值包含哪些数据格式?json语法法则是什么?

Json是大家最熟悉不过的开发工具了,它易于人阅读和编写,易于机器解析和生成,并有效地提升网络传输效率得到了很多企业的认可,那json的值包含哪些数据格式?下面来我们就来给大家讲解一下。

json有两种格式:

1.对象格式:{"key1":obj,"key2":obj,"key3":obj...}、

2.数组/集合格式:[obj,obj,obj...]。

json是 JavaScript Object Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式。

与json对象不同的是,json数据格式的属性名称和字符串值需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。json的另外一个数据格式是数组,和javascript中的数组字面量相同。

json语法法则是什么?

JSON是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个字面名。

JSON是一个序列化的对象或数组。

1. 六个构造字符:

begin-array = ws %x5B ws ; [ 左方括号

begin-object = ws %x7B ws ; { 左大括号

end-array = ws %x5D ws ; ] 右方括号

end-object = ws %x7D ws ; } 右大括号

name-separator = ws %x3A ws ; : 冒号

value-separator = ws %x2C ws ; , 逗号

2. 在这六个构造字符的前或后允许存在无意义的空白符(ws):

ws = *(%x20 /; 空间

%x09 /; 水平标签

%x0A /; 换行或换行

%x0D); 回程

3.JSON的值:

3.1 JSON的构成: ws 值 ws [1]

3.2值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。

3.2.1对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的值由逗号分割的键值对组成,如:

{"name": "John Doe", "age": 18, "address": {"country" : "china", "zip-code": 
"10000"}}

3.2.2数组是由方括号括起来的一组值构成,如:

[3, 1, 4, 1, 5, 9, 2, 6]

3.2.3 字符串与C或者Java的字符串非常相似。字符串是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

3.2.4数字也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。 [2]

一些合法的JSON的实例:

{"a": 1, "b": [1, 2, 3]}
[1, 2, "3", {"a": 4}]
3.14
"plain_text"

JSON 与 JS 对象的关系

很多人搞不清楚 JSON 和 JS 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串

JSON 和 JS 对象互转

要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:

var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 
'World'}

要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:

var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", 
"b": "World"}'

JSON是一种轻量级的数据交换格式,在使用中,我们需要对数组或者对象进行转换,而我们将这些json相关语法熟悉之后,我们就可以更好的使用json,最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

spring注入对象是属于什么引用?spring注入方式有哪些?

java工程师怎么考证?java工程师考证要掌握哪些知识?

json格式视频怎么打开?json格式打不开什么原因?