JavaScript JSON
JSON 是目前最流行的存储和传输数据的格式。
JSON 经常在数据从服务器发送到网页时使用。
什么是 JSON?
JSON 指的是 JavaScript Object Notation,是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,也是目前最流行的存储和传输数据的格式。
JSON 的语法是来自 JavaScript 对象符号的语法,但 JSON 格式是纯文本。读取和生成 JSON 数据的代码可以在任何编程语言编写的。
JSON 实例
JSON 语法定义了一个雇员对象:包含三条员工记录的数组(对象):
{
"employees":[
{"firstName":"比尔", "lastName":"盖茨"},
{"firstName":"史蒂夫", "lastName":"乔布斯"},
{"firstName":"马克", "lastName":"扎克伯格"}
]
}
JSON 格式评估为 JavaScript 对象
JSON 格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,JavaScript 程序可以很容易地将 JSON 数据转换成本地的 JavaScript 对象。
JSON 语法规则
- 数据是名称/值对
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 数据 - 名称和值
JSON 数据的书写方式是名称/值对,类似 JavaScript 对象属性。名称/值对由(双引号中的)字段名构成,其后是冒号,再其后是值:
"firstName":"比尔"
JSON 名称需要双引号。JavaScript 名称不需要。
JSON 对象
JSON 对象是在花括号内书写的。
类似 JavaScript,对象能够包含多个名称/值对:
{"firstName":"比尔", "lastName":"盖茨"}
JSON 数组
JSON 数组在方括号中书写。类似 JavaScript,数组能够包含对象:
"employees":[
{"firstName":"比尔", "lastName":"盖茨"},
{"firstName":"史蒂夫", "lastName":"乔布斯"},
{"firstName":"马克", "lastName":"扎克伯格"}
]
在上面的例子中,对象 "employees" 是一个数组。它包含了三个对象。
每个对象代表一个人的一条记录(带有名和姓)。
把 JSON 文本转换为 JavaScript 对象
JSON 的通常用法是从 web 服务器读取数据,然后在网页中显示数据。
为了简单起见,可以使用字符串作为输入演示。
首先,创建包含 JSON 语法的 JavaScript 字符串:
var text = '{ "employees" : [' +
'{ "firstName":"比尔" , "lastName":"盖茨" },' +
'{ "firstName":"史蒂夫" , "lastName":"乔布斯" },' +
'{ "firstName":"马克" , "lastName":"扎克伯格" } ]}';
然后,使用 JavaScript 的内置函数 JSON.parse() 来把这个字符串转换为 JavaScript 对象:
var obj = JSON.parse(text);
最后,请在您的页面中使用这个新的 JavaScript 对象:
<!DOCTYPE html>
<html>
<body>
<h1>用 JSON 字符串创建对象</h1>
<p id="demo">
<script>
var text = '{"employees":[' +
'{"firstName":"比尔","lastName":"盖茨" },' +
'{"firstName":"史蒂夫","lastName":"乔布斯" },' +
'{"firstName":"马克","lastName":"扎克伯格" }]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
obj.employees[1].firstName + " " + obj.employees[1].lastName;
</script>
</body>
</html>
您可以在本站的 JSON 教程 中阅读更多有关 JSON 的内容。