我有一個JSON數組在javascript中的Ajax響應。如何從JSON數組獲取集合
[{"id":1,"text":"apple"},{"id":2,"text":"mango"},{"id":3,"text":"banana"}]
我想提取的ids
一個逗號分隔的列表像"1, 2, 3"
從這個JSON響應。我怎樣才能做到這一點?
我有一個JSON數組在javascript中的Ajax響應。如何從JSON數組獲取集合
[{"id":1,"text":"apple"},{"id":2,"text":"mango"},{"id":3,"text":"banana"}]
我想提取的ids
一個逗號分隔的列表像"1, 2, 3"
從這個JSON響應。我怎樣才能做到這一點?
首先,你解析JSON(如果你不這樣做的話):
var arr = JSON.parse('[{"id":1,"text":"apple"},{"id":2,"text":"mango"},{"id":3,"text":"banana"}]');
然後循環數組以提取每個對象上的id。您可以使用數組循環的map
方法和IDS一氣呵成添加到一個新的數組:
var ids = arr.map(function(item) {
return item.id;
});
alert(ids.join(','));
謝謝,它工作:) – 2013-03-14 05:51:42
假設你的JSON是作爲字符串存儲jsonstr
在您的JS代碼:
/*parse the JSON to a JS object*/
var data = JSON.parse(jsonstr);
var ids = [];
for(var i=0; i<data.length; i++){
//loop over the array and if the id is defined add it
if(typeof data[i].id !== "undefined"){
ids.push(data[i].id);
}
}
@bfavaretto很好的問題。不喜歡評論顯然 – 2013-03-13 13:37:09
@bfavaretto去爲它。我只是嘗試了大約5種不同的東西,即使在自己的行上使用/ ** /,也會打破後面的代碼。 – 2013-03-13 13:42:59
我剛剛在meta上發佈了一個關於它的問題:http://meta.stackexchange.com/questions/171669/syntax-highlighter-failing-for-specific-code-block – bfavaretto 2013-03-13 13:50:07
var a = [{
"id": 1,
"text": "apple"
}, {
"id": 2,
"text": "mango"
}, {
"id": 3,
"text": "banana"
}];
var ar = [];
for (var i = 0; i < a.length; i++) {
ar.push(a[i].id);
}
alert(ar.join(','))
那不是你定義的JSON字符串,它是一個JavaScript對象。 – 2013-03-13 13:25:35
@ ben336:糾正我,如果我錯了,原來的海報已經表示他有「一個JSON數組」,我解釋爲解析JSON陣列形式已經 – Thalaivar 2013-03-13 13:31:25
但他的所有屬性都被雙引號。看起來更像是一個JSON字符串。它總是有可能讓他感到困惑,但是他說他有JSON,而且它的格式與它的JSON格式一樣,所以我認爲沒有太多理由認爲它不是JSON – 2013-03-13 13:36:17
關於這一點:
x = [{"id":1,"text":"apple"},{"id":2,"text":"mango"},{"id":3,"text":"banana"}];
str = "";
for(i=0;i<x.length;i++)
{
str += x[i].id.toString() + ',';
}
str = str.substring(0, str.length - 1);
console.log(str);
不用「var」定義變量。假設存在「id」。當它已經集中在兩個字符串周圍時,不必要地調用toString。如果任何一個「id」未定義,它將不會有toString方法,並且此代碼段將會出錯。原始海報表示他們希望它以逗號和空格集中。我看不到空間。當一個簡單的數組和連接可以做到這一點時,也可以使用過於複雜的可疑子字符串方法來修剪最後一個字符。最後假設當原始海報提到需要解析的JSON時,響應已經是一個數組。 – Ultimater 2013-03-13 13:53:26
你嘗試過什麼然而?爲什麼它不起作用?你是否得到任何錯誤等... – epoch 2013-03-13 13:21:24
我沒有任何想法做到這一點。 – 2013-03-13 13:22:20