admin 管理员组

文章数量: 1184232


2024年3月29日发(作者:html课程文档)

JSON数据格式

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格

式。JSON采用完全独立于语言的文本格式,这些特性使 JSON成为理想的数据交

换语言。易于人阅读和编写,同时也易于机器解析和生成。

基础结构

JSON建构于两种结构:

1. “名称/值”对的集合(A collection of name/value pairs )。不同的语言

中,它被理解为对象(object),记录(record),结构(struct ),字典(dictionary ), 哈

希表(hash table ),有键列表(keyed list ),或者关联数组 (associative array )。

2. 值的有序列表(An ordered list of values )。在大部分语言中,它被理解 为数组

(array )。

基础示例

简单地说,JSO N可以将JavaScript 对象中表示的一组数据转换为字符串,然 后就可

以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web客户机

传递给服务器端程序。这个字符串看起来有点儿古怪,但是

JavaScript 很容易解释它,而且JSON可以表示比"名称/值对"更复杂的结构 例如,可

以表示数组和复杂的对象,而不仅仅是键和值的简单列表。

表示名称

/

值对

按照最简单的形式,可以用下面这样的 JSON表示"名称/值对":

{ "firstName": "Brett" }

这个示例非常基本,而且实际上比等效的纯文本

[间:firstName=Brett

但是,当将多个"名称/值对"串在一起时,JSON就会体现出它的价值了。首先, 可以

创建包含多个"名称/值对"的 记录,比如:

{ "firstName": "Brett", "lastName":"McLaughli n", "email": "aaaa" } 从语法方面来看,

这与"名称/值对"相比并没有很大的优势,但是在这种情况 下JSON更容易使用,而且

可读性更好。例如,它明确地表示以上三个值都是同 一记录的一部分;花括号使这些

值有了某种联系。

"名称/值对"占用更多的空

表示数组

当需要表示一组值时,JSO N不但能够提高可读性,而且可以减少复杂性。例如, 假

设您希望表示一个人名列表。在 XML中,需要许多开始标记和结束标记;如 果使用

典型的 名称/值对(就像在本系列前面文章中看到的那种名称 /值

对),那么必须建立一种专有的数据格式,或者将键名称修改为

pers on 1-firstName 这样的形式。

如果使用JSON,就只需将多个带花括号的记录分组在一起:

{ "people":[

{ "firstName": "Brett", "lastName":"McLaughli n", "email": "aaaa" },

{ "firstName": "Jaso n", "lastName":"Hu nter", "email": "bbbb"},

{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

]}

这不难理解。在这个示例中,只有一个名为 people的变量,值是包含三个条目 的数

组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示 例演示如

何用括号将记录组合成一个值。 当然,可以使用相同的语法表示多个值

(每个值包含多个记录):

{ "programmers":[

{ "firstName": "Brett", "lastName":"McLaughli n", "email": "aaaa" },

{ "firstName": "Jaso n", "lastName":"Hu nter", "email": "bbbb" },

{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

],

"authors":[

{ "firstName": "Isaac", "lastName": "Asimov", "ge nre": "scie nce

fictio n" }, { "firstName": "Tad", "lastName": "Williams", "ge nre": "fa ntasy"},

{ "firstName": "Fra nk", "lastName": "Peretti", "ge nre": "christia n fictio n" }

],

"musicia ns":[


本文标签: 表示 名称 字符串 包含 记录