2013-03-12 46 views
2

我有以下格式的JSON數組:如何更改下面給出的json數組?

[{"country":"Algeria"},{"country":"Africa"},{"country":"America"},{"country":"Libiya"}] 

我需要進行如下更改:

{"Algeria","Africa","America","Libiya"} 

如何做到這一點使用jQuery或JavaScript?

+2

用什麼語言? – Rob 2013-03-12 12:52:32

+0

我不得不第二個Rob的評論。假設你在JavaScript中工作,我在下面提供了一個答案,但從你的問題來看,這並不清楚。你能澄清嗎? – guypursey 2013-03-12 19:32:21

+0

使用javascript或jquery – 2013-03-13 06:22:00

回答

1

在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)); 
1

你實際上是在你的問題了錯誤的符號。你想要的最終結果應該有方括號([]),而不是大括號({})。大括號表示一個對象而不是一個數組,但是你沒有使用鍵值結構,所以你上面的最終結果實際上是無效的。

相反,它似乎你想["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的屬性,以及在重寫數組中處理該屬性的一些方法。但現在我會留給你,看你如何繼續。這應該工作,如果你的數組是有效的開始。

相關問題