JSON 数据格式详解( 二 )


]}
这不难理解 。在这个示例中,只有一个名为 的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址 。上面的示例演示如何用括号将记录组合成一个值 。当然,可以使用相同的语法表示多个值(每个值包含多个记录):
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{"": [
{"":"Brett","":"","email":"aaaa" },
{"":"Jason","":"","email":"bbbb" },
{"":"","":"","email":"cccc" }
],
"": [
{"":"Isaac","":"","genre":" " },
{"":"Tad","":"","genre":"" },
{"":"Frank","":"","genre":" " }
],
"": [
{"":"Eric","":"","":"" },
{"":"","":"","":"piano" }
] }

JSON 数据格式详解

文章插图
这里最值得注意的是,能够表示多个值,每个值进而包含多个值 。但是还应该注意,在不同的主条目(、 和 )之间,记录中实际的名称 / 值对可以不一样 。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式 。
在处理 JSON 格式的数据时,没有需要遵守的预定义的约束 。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物 。
格式应用
掌握了 JSON 格式之后,在中使用它就很简单了 。JSON 是原生格式,这意味着在中处理 JSON 数据不需要任何特殊的 API 或工具包 。
将 JSON 数据赋值给变量
例如,可以创建一个新的变量,然后将 JSON 格式的数据字符串直接赋值给它:
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var= {"": [ {"":"Brett","":"","email":"aaaa" },
{"":"Jason","":"","email":"bbbb" },
{"":"","":"","email":"cccc" }
],
"": [
{"":"Isaac","":"","genre":" " },
{"":"Tad","":"","genre":"" },
{"":"Frank","":"","genre":" " }
],
"": [
{"":"Eric","":"","":"" },
{"":"","":"","":"piano" }
] }
这非常简单;现在 包含前面看到的 JSON 格式的数据 。但是,这还不够,因为访问数据的方式似乎还不明显 。
访问数据
尽管看起来不明显,但是上面的长字符串实际上只是一个数组;将这个数组放进变量之后,就可以很轻松地访问它 。实际上,只需用点号表示法来表示数组元素 。所以,要想访问列表的第一个条目的姓氏,只需在中使用下面这样的代码:
.[0].;
注意,数组索引是从零开始的 。所以,这行代码首先访问 变量中的数据;然后移动到称为 的条目,再移动到第一个记录([0]);最后,访问 键的值 。结果是字符串值 “” 。
下面是使用同一变量的几个示例 。
.[1].genre// Value is ""
.[3].// . Thisto theentry, and there isn't one
.[2].// Value is ""
利用这样的语法,可以处理任何 JSON 格式的数据,而不需要使用任何额外的工具包或 API 。
修改 JSON 数据
正如可以用点号和括号访问数据,也可以按照同样的方式轻松地修改数据:
.[1]. = "";
在将字符串转换为对象之后,就可以像这样修改变量中的数据 。
转换回字符串
当然,如果不能轻松地将对象转换回本文提到的文本格式,那么所有数据修改都没有太大的价值 。在中这种转换也很简单:
= .();
这样就行了!现在就获得了一个可以在任何地方使用的文本字符串,例如,可以将它用作 Ajax 应用程序中的请求字符串 。
更重要的是,可以将任何 对象转换为 JSON 文本 。并非只能处理原来用 JSON 字符串赋值的变量 。为了对名为 的对象进行转换,只需执行相同形式的命令: