2010-05-12 52 views
0

我的JSON對象是這樣的:如何從一個JSON對象建立ID的一串

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

我想建立的所有ID的字符串。

我該怎麼做? 有沒有比下面更優雅的方式?

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

退房這個問題:http://stackoverflow.com/questions/759385/asp-netjquery-how-to-deserialize-json – Gabe 2010-05-12 15:04:13

+0

什麼type是你的'json'變量? – Gumbo 2010-05-12 15:04:19

+0

您的對象不是有效的JSON,甚至沒有有效的JavaScript,即使它是 - 它當前的形式只能包含一個'ID'。那它真的是什麼樣子? – Tomalak 2010-05-12 15:08:48

回答

2

你可以讓一個數組,使用.push()後添加項目和.join()的結果,就像這樣:

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

對於JavaScript 1.8(ECMA-262第5版),你可以使用數組。減少基本上做同樣的事情:如果您在ARR喜歡累計值

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

3

假設你幾個用戶的數組,這是你的問題,似乎有什麼暗示(即使你看的例子既不是有效的JSON也不是表明有類型的用戶的多個對象) ...

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"