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>