3

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

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

ids我想"1, 2, 3"从这个 JSON 响应中提取一个逗号分隔的列表。我怎样才能做到这一点?

4

4 回答 4

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(','));
于 2013-03-13T13:23:37.860 回答
1

jsonstr假设您的 json在您的 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);
   }
}
于 2013-03-13T13:21:56.067 回答
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/

于 2013-03-13T13:24:45.640 回答
-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);
于 2013-03-13T13:40:08.333 回答