如何从JSON数组中获取集合

时间:2013-03-13 13:19:17

标签: javascript ruby json ruby-on-rails-3

我在javascript中的ajax响应中有一个JSON数组。

[{"id":1,"text":"apple"},{"id":2,"text":"mango"},{"id":3,"text":"banana"}]

我想从此JSON响应中提取逗号分隔的ids列表,如"1, 2, 3"。我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

首先,您解析JSON(如果您还没有这样做):

var arr = JSON.parse('[{"id":1,"text":"apple"},{"id":2,"text":"mango"},{"id":3,"text":"banana"}]');

然后循环数组以提取每个对象的id。您可以使用map数组方法循环并一次性将ID添加到新数组中:

var ids = arr.map(function(item) {
    return item.id;
});
alert(ids.join(','));

答案 1 :(得分:1)

假设您的json在js代码中存储为字符串jsonstr

/*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);
   }
}

答案 2 :(得分:0)

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(','))

http://jsfiddle.net/t3w5S/1/

答案 3 :(得分:-1)

关于这个:

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