JSON(JavaScript Object Notation)是一种基于文本的数据格式,用于表示对象和数据结构。它是语言无关的,这意味着它可以与任何编程语言一起使用。JSON常用于在服务器和Web应用程序之间或两个不同的Web应用程序之间交换数据。
JSON特性
JSON是一种语言无关的数据存储格式。
JSON语法
JSON数据以键-值对的形式表示。每个键值对之间用逗号分隔。JSON数据写在花括号内。
以下是一个简单的JSON语法:
{
"key1": value1,
"key2": value2,
...
}
键名(key1, key2, ...)总是用双引号书写。JSON数据值(value1, value2, ...)可以包含以下数据类型:
JSON数据
JSON数据写成键-值对的形式,就像JavaScript对象中的属性一样。每个键-值对包含一个用双引号书写的键名,后面跟着一个冒号,然后是一个值。
"name":"John Doe"
JSON数据与JavaScript对象属性的区别在于,JSON数据中的键名总是用双引号书写,而对象属性名称不需要这样。
JSON对象
我们可以通过在花括号内写入JSON数据来创建JSON对象。JSON对象可以包含多个由逗号分隔的键-值对。
{"name": "John Doe", "age": 30, "isStudent": false}
在上述示例中,JSNO对象包含三个JSON数据。
在JavaScript中,我们可以解析JSON对象到一个变量:
let person = {"name": "John Doe", "age": 30, "isStudent": false}
在上面的例子中,JSON对象包含三个JSON数据。
JSON数组
JSON数组写在方括号内。我们写入方括号内的JSON数据以创建一个JSON数组。数组可以包含对象。
[
{
"name": "John Doe",
"age": 30,
"occupation": "Software Engineer"
},
{
"name": "Jane Doe",
"age": 25,
"occupation": "Doctor"
}
]
在上述示例中,数组包含两个JSON对象。数组是JSON数组。这是一个有效的JSON类型。
访问JSON数据
我们可以使用点符号或方括号符号来访问JSON数据。
示例
在下面的示例中,我们创建了一个具有三个键名——name, age, 和 occupation的JSON对象,并将其解析到一个名为person的变量中。然后我们使用点符号访问name,使用方括号符号访问age。
<html>
<body>
<div> 访问JSON数据 </div>
<div id="demo"></div>
<script>
const person = {
"name": "John Doe",
"age": 30,
"occupation": "Software Engineer"
}
document.getElementById("demo").innerHTML =
"Name: "+person.name + "<br>"+
"Age: "+person.age+ "<br>"+
"Occupation: "+person.occupation;
</script>
</body>
</html>
输出:
访问JSON数据
Name: John Doe
Age: 30
Occupation: Software Engineer
如输出所示,它检索了键名"John Doe"和"30"。
JSON方法
下表列出了JSON方法及其描述:
序号 |
方法名与描述 |
1 |
JSON.parse() 它解析一个JSON字符串并创建一个JavaScript对象。 |
2 |
JSON.stringify() 它将一个JavaScript对象转换为JSON字符串。 |
JSON vs. JavaScript对象
JSON对象与JavaScript对象相同。两者可以相互转换。但是它们有一些区别:
-
JSON是语言无关的——可以在不同的编程语言间交换数据,而JavaScript对象只能在JavaScript中使用。
-
JSON不能包含函数,而JavaScript对象可以包含函数作为属性值。
-
JSON数据中的键名总是用双引号书写,而在JavaScript对象中则不需要这样。
将JSON字符串转换为JavaScript对象
我们可以使用内置函数JSON.parse()
将JSON转换为JavaScript对象。首先,我们创建一个包含JSON对象的JavaScript字符串。
let jsonString = '{"name": "John Doe", "age": 30, "isStudent": false}';
然后,我们使用JSON.parse()
函数将字符串转换为JavaScript对象:
const jsonObject = JSON.parse(jsonString);
示例
在下面的示例中,我们定义了一个包含JSON对象的字符串。然后我们使用JSON.parse()
函数将JSON字符串解析为JavaScript对象。最后我们显示了第一个JSON数据值。
<html>
<body>
<div> 将JSON字符串转换为JavaScript对象 </div>
<div id="demo"></div>
<script>
let jsonString = '{"name": "John Doe", "age": 30, "isStudent": false}';
const jsonObject = JSON.parse(jsonString);
document.getElementById("demo").innerHTML = jsonObject.name;
</script>
</body>
</html>
输出:
将JSON字符串转换为JavaScript对象
John Doe
如输出所示,上述程序将JavaScript对象转换为了一个JSON对象。
将JavaScript对象转换为JSON
我们可以使用JavaScript内置函数JSON.stringify()
将JavaScript对象转换为JSON字符串。
示例
<html>
<body>
<div> 将JavaScript对象转换为JSON字符串 </div>
<div id="demo"></div>
<script>
const person = {
name: "John Doe",
age: 30,
isStudent: false
};
const jsonString = JSON.stringify(person);
document.getElementById("demo").innerHTML = jsonString;
</script>
</body>
</html>
输出:
将JavaScript对象转换为JSON字符串
{"name":"John Doe","age":30,"isStudent":false}