我有以下格式的JSON數組:如何更改下面給出的json數組?
[{"country":"Algeria"},{"country":"Africa"},{"country":"America"},{"country":"Libiya"}]
我需要進行如下更改:
{"Algeria","Africa","America","Libiya"}
如何做到這一點使用jQuery或JavaScript?
我有以下格式的JSON數組:如何更改下面給出的json數組?
[{"country":"Algeria"},{"country":"Africa"},{"country":"America"},{"country":"Libiya"}]
我需要進行如下更改:
{"Algeria","Africa","America","Libiya"}
如何做到這一點使用jQuery或JavaScript?
在javascript中:
var myArray = [{"country":"Algeria"},{"country":"Africa"},{"country":"America"},{"country":"Libiya"}];
var myNewArray = [];
for (var item in myArray) {
var country = myArray[item].country;
myNewArray.push(country);
}
alert(JSON.stringify(myNewArray));
你實際上是在你的問題了錯誤的符號。你想要的最終結果應該有方括號([]
),而不是大括號({}
)。大括號表示一個對象而不是一個數組,但是你沒有使用鍵值結構,所以你上面的最終結果實際上是無效的。
相反,它似乎你想["Algeria","Africa",America","Libiya"]
作爲最終結果。
假設你的意思從字面上改變你的陣列,而不是創建一個新的,假設你使用的JavaScript:
var arr = [{"country":"Algeria"},{"country":"Africa"},{"country":"America"},{"country":"Libiya"}], // declare your array upfront (but this could be a `JSON.parse()` call)
i = 0, // counter
l = arr.length; // limit/length of array
for (i; i < l; i += 1) {
arr[i] = arr[i].country; // Replace object with value of country property.
}
// `arr` will now be `["Algeria","Africa",America","Libiya"]`
當然,你可能要出臺一些檢查,以確保該數組的每一個元素有一個名爲country
的屬性,以及在重寫數組中處理該屬性的一些方法。但現在我會留給你,看你如何繼續。這應該工作,如果你的數組是有效的開始。
用什麼語言? – Rob 2013-03-12 12:52:32
我不得不第二個Rob的評論。假設你在JavaScript中工作,我在下面提供了一個答案,但從你的問題來看,這並不清楚。你能澄清嗎? – guypursey 2013-03-12 19:32:21
使用javascript或jquery – 2013-03-13 06:22:00