如何从json对象构建一个id字符串

时间:2010-05-12 15:00:53

标签: javascript json

我的json对象看起来像:

User { ID: 234, name: 'john', ..);

我想构建一个包含所有ID的字符串。

我该怎么做? 有比下面更优雅的方式吗?

var ids = '';
for(int x = 0; x < json.length; x++)
{
      ids += json[x].Id + ",";
}
// strip trailing id

3 个答案:

答案 0 :(得分:3)

假设您是一个包含多个用户的数组,这就是您的问题似乎暗示(即使您显示的示例既不是有效的JSON,也不表示存在多个类型为user的对象) ...

var jsonResult = [{ID: 1, name: 'John'}, {ID: 2, name: 'Bob'}];

var ids = jsonResult.map( function(user) {return user.ID;} ).join(',');
// ids will be "1,2"

答案 1 :(得分:2)

您可以创建一个数组,使用.push()添加项目,然后使用.join()结果,如下所示:

var ids = [];
for(int x = 0; x < json.length; x++)
{
      ids.push(json[x].Id);
}
var idString = ids.join(',');

答案 2 :(得分:0)

对于JavaScript 1.8(ECMA-262 Edition 5),你可以使用Array.reduce来做同样的事情:

[{id:1},{id:2},{id:3}].reduce(function(a,b) { return a+','+b.id }, '').substr(1)

如果您希望在数组中累积值并最终将它们连接起来,请执行以下操作:

[{id:1},{id:2},{id:3}].reduce(function(a,b) { a.push(b.id); return a }, []).join(',')