JSON 数组
作为 JSON 对象的数组
[ "保时捷", "玛莎拉蒂", "兰博基尼" ]
JSON 中的数组几乎与 JavaScript 中的数组相同。
在 JSON 中,数组值的类型必须属于字符串、数字、对象、数组、布尔或 null。
在 JavaScript 中,数组值可以是以上所有类型,外加任何其他有效的 JavaScript 表达式,包括函数、日期和 undefined。
JSON 对象中的数组
数组可以是对象属性的值:
{
"name":"埃隆 马斯克",
"age":50,
"cars":[ "保时捷", "玛莎拉蒂", "兰博基尼" ]
}
访问数组值
您可以通过使用索引号来访问数组值:
<!DOCTYPE html>
<html>
<body>
<h1>JSON 数组</h1>
<p>访问 JSON 对象的数组值。</p>
<p id="demo">
<script>
var myObj, x;
myObj = {
"name":"埃隆 马斯克",
"age":50,
"cars":[ "保时捷", "玛莎拉蒂", "兰博基尼" ]
};
x = myObj.cars[0];
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
遍历数组
您可以通过使用 for-in 循环来访问数组值:
<!DOCTYPE html>
<html>
<body>
<h1>JSON 数组</h1>
<p>使用 for in 循环遍历数组</p>
<p id="demo">
<script>
var myObj, i, x = "";
myObj = {
"name":"埃隆 马斯克",
"age":50,
"cars":[ "保时捷", "玛莎拉蒂", "兰博基尼" ]
};
for (i in myObj.cars) {
x += myObj.cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
或者您可以使用 for 循环:
<!DOCTYPE html>
<html>
<body>
<h1>JSON 数组</h1>
<p>使用 for 循环遍历数组</p>
<p id="demo">
<script>
var myObj, i, x = "";
myObj = {
"name":"埃隆 马斯克",
"age":50,
"cars":[ "保时捷", "玛莎拉蒂", "兰博基尼" ]
};
for (i = 0; i < myObj.cars.length; i++) {
x += myObj.cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
JSON 对象中的嵌套数组
数组中的值也可以另一个数组,或者甚至另一个 JSON 对象:
myObj = {
"name":"埃隆 马斯克",
"age":50,
"cars": [
{ "name":"保时捷", "models":[ "911", "Taycan" ] },
{ "name":"玛莎拉蒂", "models":[ "总裁", "Ghibli", "Levante" ] },
{ "name":"兰博基尼", "models":[ "Urus", "Aventador" ] }
]
}
如需访问数组内部的数组,请对每个数组使用 for-in 循环:
<!DOCTYPE html>
<html>
<body>
<h1>JSON 数组</h1>
<p>遍历数组内的数组。</p>
<p id="demo">
<script>
var myObj, i, j, x = "";
myObj = {
"name":"埃隆 马斯克",
"age":50,
"cars": [
{ "name":"保时捷", "models":[ "911", "Taycan" ] },
{ "name":"玛莎拉蒂", "models":[ "总裁", "Ghibli", "Levante" ] },
{ "name":"兰博基尼", "models":[ "Urus", "Aventador" ] }
]
}
for (i in myObj.cars) {
x += "<h2>" + myObj.cars[i].name + "</h2>";
for (j in myObj.cars[i].models) {
x += myObj.cars[i].models[j] + "<br>";
}
}
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
修改数组值
请使用索引号来修改数组:
<!DOCTYPE html>
<html>
<body>
<h1>JSON 数组</h1>
<p>如何修改 JSON 对象的数组值。</p>
<p id="demo">
<script>
var myObj, i, x = "";
myObj = {
"name":"埃隆 马斯克",
"age":50,
"cars":[ "保时捷", "玛莎拉蒂", "兰博基尼" ]
}
myObj.cars[2] = "梅赛德斯奔驰";
for (i in myObj.cars) {
x += myObj.cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
删除数组项目
请使用 delete 关键词来删除数组中的项目:
<!DOCTYPE html>
<html>
<body>
<h1>JSON 数组</h1>
<p>如何删除数组的属性。</p>
<p id="demo">
<script>
var myObj, i, x = "";
myObj = {
"name":"埃隆 马斯克",
"age":50,
"cars":[ "保时捷", "玛莎拉蒂", "兰博基尼" ]
}
delete myObj.cars[2];
for (i in myObj.cars) {
x += myObj.cars[i] + "<br>";
}
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>