2011-09-26 97 views
-7

我有一个JSON字符串这样Coverting JSON数组JS对象

[ { 
"name":"sourabh", 
"userid":"soruabhbajaj", 
"id":"11", 
"has_profile_image":"0" }, 
{ 
"name":"sourabh", 
"userid":"sourabhbajaj", 
"id":"12", 
"has_profile_image":"0" 
}] 

现在,我想这个JSON数组转换为这样的绳子,让我可以在整个使用ID访问任何对象页。

{ "11": { 
"name":"sourabh", 
"userid":"soruabhbajaj", 
"id":"11", 
"has_profile_image":"0" }, 
"12": { 
"name":"sourabh", 
"userid":"sourabhbajaj", 
"id":"12", 
"has_profile_image":"0" 
}} 

请推荐一些代码。 Thanx提前

编辑: 将这项工作:

user.(function(){return id;}) 

然后访问这样

user.id.name 

我的意思是对象,这是定义对象的正确方法是什么?

+1

什么停止*** ***你从提出一些代码,我们给你在正确的方向指针? – Matt

+0

我试图操纵整个字符串,但似乎没有足够的效率。所以我问了一些可以指导我的代码。 – Sourabh

+0

你有权访问生成JSON的代码吗?这是更简单的方法,国际海事组织。 –

回答

3
var data = ... the initial array 
var result = {}; 
for (var i = 0; i < data.length; i++) { 
    var element = data[i]; 
    result[element.id] = element; 
}; 
+0

我不想把它们放在数组中。我想为每个用户创建新的对象。 – Sourabh

+2

@Sourabh,你可以通过使用'result [123] .name'来访问每个用户。 –

+0

这是个不错的选择。感谢名单。我在编辑我的问题,检查它是否有效? – Sourabh

0
var data = [ 
    {"name":"sourabh", "userid":"soruabhbajaj", "id":"11", "has_profile_image":"0"}, 
    {"name":"sourabh", "userid":"sourabhbajaj", "id":"12", "has_profile_image":"0"} 
]; 

var newData = {}; 

for (var i = 0; i < data.length; i++) { 
    var item = data[i]; 
    newData[item.id] = item; 
} 

现在newData是一个对象,其中键是人民的识别码与数据的每个关键是人的对象本身。所以,你可以访问这样一个项目:

var id = "11"; 
var name = newData[id].name;