一、json是建立在两种结构:
- 名称/值对的集合。在各种语言中,这是实现对象、记录、结构、字典、哈希表、键列表或关联数组。
- 值的有序列表。在大多数语言中,这是一个数组、向量、列表或序列。
二、JSON的表示形式:
- 表示名称/值对
- 按照最简单的形式,可以用下面这样的JSON 表示 "名称 / 值对" :{"firstName": "Brett" }
- 当将多个"名称/ 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的 记录,比如: { "firstName":
"Brett","lastName":"McLaughlin","email": "aaaa" }
2. 表示数组
当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML中,需要许多开始标记和结束标记;如果 使用典型的名称/值对,那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式。
如果使用JSON,就只需将多个带花括号的记录分组在一起:
{ "people": [
{ "firstName": "Brett","lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason","lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte","lastName":"Harold", "email": "cccc" }
]}
这不难理解。在这个示例中,只有一个名为people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如 何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):
{ "programmers": [
{ "firstName": "Brett","lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason","lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte","lastName":"Harold", "email": "cccc" }
],
"authors": [
{ "firstName": "Isaac", "lastName":"Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName":"Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName":"Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName":"Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName":"Rachmaninoff", "instrument": "piano" }
] }