JavaScript JSON
JSON 是一种轻量的数据交换语言,容易阅读和自动生成。本文介绍 JSON 的格式及简单用法。
JSON 是一种轻量的数据交换语言,容易阅读和自动生成。本文介绍 JSON 的格式及简单用法。
当数据从服务器发送到网页时,很多时候会使用 JSON 作为数据格式。
什么是 JSON?
- JSON 代表 JavaScript Object Notation
- JSON 是一种轻量级的数据交换格式
- JSON 与语言无关
- JSON 易于理解和书写
JSON 语法源自 JavaScript 对象字面量语法,但 JSON 格式仅为文本。读取和生成 JSON 数据的代码可以用任何编程语言编写。
JSON 示例
这个 JSON 数据定义了一个对象,对象有 employees
属性, employees
是一个包含了 3 个员工信息的数组。
{
"employees": [
{ "firstName": "John", "lastName": "Doe" },
{ "firstName": "Anna", "lastName": "Smith" },
{ "firstName": "Peter", "lastName": "Jones" }
]
}
JSON vs JavaScript 对象
JSON 格式在语法上与用于创建 JavaScript 对象的代码相似。
由于这种相似性,JavaScript 程序可以轻松地将 JSON 数据转换为原生 JavaScript 对象。
JSON 语法规则
- 数据使用键值对表示
- 数据之间使用逗号分隔
- 花括号表示对象
- 方括号表示数组
JSON 数据 - 键值对
JSON 数据以键值对的形式编写,就像 JavaScript 对象属性一样。
JSON 的键名称需要使用双引号,JavaScript 名称没有。
名称/值对由字段名称(双引号)、冒号和值组成:
"firstName":"John"
JSON 对象
JSON 对象写在花括号内。
就像在 JavaScript 中一样,对象可以包含多个键值对:
{ "firstName": "John", "lastName": "Doe" }
JSON 数组
JSON 数组写在方括号内。
就像在 JavaScript 中一样,数组可以包含对象:
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]
在上面的例子中, employees
是一个数组。它包含三个对象。
每个对象都是一个人的记录(有名字和姓氏)。
将 JSON 转为 JavaScript 对象
JavaScript 内置了 JSON.parse()
方法将 JSON 格式的文本转为 JavaScript 对象。
JSON 的一个常见用途是从 Web 服务器读取数据,并将数据显示在网页中。
为简单起见,下面的例子使用字符串作为输入来演示。
-
首先,创建一个内容为 JSON 数据格式的字符串:
let text = '{ "employees" : [' + '{ "firstName":"John" , "lastName":"Doe" },' + '{ "firstName":"Anna" , "lastName":"Smith" },' + '{ "firstName":"Peter" , "lastName":"Jones" } ]}';
-
然后,使用
JSON.parse()
将字符串转换为 JavaScript 对象:const obj = JSON.parse(text);
-
最后,直接使用 JavaScript 对象:
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = obj.employees[1].firstName + " " + obj.employees[1].lastName; </script>