JSON 數組——通路數組值-周遊數組-JSON 對象中的嵌套數組-修改數組值-删除數組項目
作為 JSON 對象的數組
執行個體
JSON 中的數組幾乎與 JavaScript 中的數組相同。
在 JSON 中,數組值的類型必須屬于字元串、數字、對象、數組、布爾或 null。
在 JavaScript 中,數組值可以是以上所有類型,外加任何其他有效的 JavaScript 表達式,包括函數、日期和 undefined。
1、JSON 對象中的數組
數組可以是對象屬性的值:
執行個體
{
"name":"Bill Gates",
"age":62,
"cars":[ "Porsche", "BMW", "Volvo" ]
}
2、通路數組值
您可以通過使用索引号來通路數組值:
執行個體
var myObj, x;
myObj = {
"name":"Bill Gates",
"age":62,
"cars":[ "Porsche", "BMW", "Volvo" ]
};
x = myObj.cars[0];
console.log(x) // "Porsche"
3、周遊數組
您可以通過使用 for-in 循環來通路數組值:
執行個體
var myObj, i, x = "";
myObj = {
"name":"Bill Gates",
"age":62,
"cars":[ "Porsche", "BMW", "Volvo" ]
};
for (i in myObj.cars) {
x += myObj.cars[i];
}
console.log(x) // "PorscheBMWVolvo"
或者您可以使用 for 循環:
執行個體
var myObj, i, x = "";
myObj = {
"name":"Bill Gates",
"age":62,
"cars":[ "Porsche", "BMW", "Volvo" ]
};
for (i = 0; i < myObj.cars.length; i++) {
x += myObj.cars[i];
}
console.log(x) // "PorscheBMWVolvo"
4、JSON 對象中的嵌套數組
數組中的值也可以另一個數組,或者甚至另一個 JSON 對象:
執行個體
myObj = {
"name":"Bill Gates",
"age":62,
"cars": [
{ "name":"Porsche", "models":[ "911", "Taycan" ] },
{ "name":"BMW", "models":[ "M5", "M3", "X5" ] },
{ "name":"Volvo", "models":[ "XC60", "V60" ] }
]
}
如需通路數組内部的數組,請對每個數組使用 for-in 循環:
執行個體
var myObj, i, j, x = "";
myObj = {
"name":"Bill Gates",
"age":62,
"cars": [
{"name":"Porsche", "models":["911", "Taycan"]},
{"name":"BMW", "models":["M5", "M3", "X5"]},
{"name":"Volvo", "models":["XC90", "V60"] }
]
}
for (i in myObj.cars) {
x += myObj.cars[i].name;
for (j in myObj.cars[i].models) {
x += myObj.cars[i].models[j] ;
}
}
console.log(x) // "Porsche911TaycanBMWM5M3X5VolvoXC90V60"
5、修改數組值
請使用索引号來修改數組:
執行個體
var myObj, i, x = "";
myObj = {
"name":"Bill Gates",
"age":62,
"cars": ["Porsche","BMW","Volvo"]
}
myObj.cars[2] = "Mercedes Benz";
for (i in myObj.cars) {
x += myObj.cars[i];
}
console.log(x) // "PorscheBMWMercedes Benz"
6、删除數組項目
請使用 delete 關鍵詞來删除數組中的項目:
執行個體
var myObj, i, x = "";
myObj = {
"name":"Bill Gates",
"age":62,
"cars": ["Porsche","BMW","Volvo"]
}
delete myObj.cars[2];
for (i in myObj.cars) {
x += myObj.cars[i];
}
console.log(x) // "PorscheBMW"