Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从JSON数组中获取集合_Javascript_Ruby_Json_Ruby On Rails 3 - Fatal编程技术网

Javascript 如何从JSON数组中获取集合

Javascript 如何从JSON数组中获取集合,javascript,ruby,json,ruby-on-rails-3,Javascript,Ruby,Json,Ruby On Rails 3,我在javascript的ajax响应中有一个JSON数组 [{"id":1,"text":"apple"},{"id":2,"text":"mango"},{"id":3,"text":"banana"}] 我想从这个JSON响应中提取一个逗号分隔的id列表,比如“1,2,3”。我如何才能做到这一点?假设您的json存储为js代码中的字符串jsonstr: /*将JSON解析为JS对象*/ var data=JSON.parse(jsonstr); var-id=[]; 对于(var i=0

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

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

我想从这个JSON响应中提取一个逗号分隔的
id
列表,比如
“1,2,3”
。我如何才能做到这一点?

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

/*将JSON解析为JS对象*/
var data=JSON.parse(jsonstr);
var-id=[];
对于(var i=0;i首先,解析JSON(如果您还没有这样做):

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

var ids = arr.map(function(item) {
    return item.id;
});
alert(ids.join(','));
var a=[{
“id”:1,
“文本”:“苹果”
}, {
“id”:2,
“文本”:“芒果”
}, {
“id”:3,
“文本”:“香蕉”
}];
var-ar=[];
对于(变量i=0;i

关于这一点:

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);
x=[{“id”:1,“text”:“apple”},{“id”:2,“text”:“mango”},{“id”:3,“text”:“banana”}];
str=“”;

对于(i=0;我已经尝试过任何东西了吗?为什么它不起作用?你有没有收到任何错误,等等……我不知道该怎么做。你定义的不是JSON字符串,而是javascript对象。@ben336:如果我错了,请纠正我,原始海报已经说他有“一个JSON数组”我大胆地说,它被解析为数组形式的JSON,但他所有的属性都被双引号引了起来。看起来更像是一个JSON字符串。他总是可能会感到困惑,但他说他有JSON,并且他将其格式化为JSON,所以我认为没有太多理由认为它没有JSON@bfavaretto问得好,不是吗喜欢评论吗apparently@bfavaretto去做吧。我刚刚尝试了5种不同的方法,任何与注释的组合,即使我在自己的行中使用了/**/也会破坏后面的代码。我刚刚在meta上发布了一个关于它的问题:@bfavaretto,它很快就被修复了。谢谢。不使用“var”定义变量。假设一个“id”存在。在toString已经集中在两个字符串周围时不必要地调用它。如果有任何一个“id”未定义它将没有toString方法,此代码段将出错。原始海报说,他们希望用逗号加空格将其浓缩。我看不到空格。此外,在使用简单数组和联接时,使用过于复杂的看起来可疑的子字符串方法修剪最后一个字符。最后假设响应当原始海报提到需要解析的JSON时,已经是一个数组。
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(','))
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);