将json数组转换为js对象

时间:2011-09-26 15:58:58

标签: javascript jquery json

我有一个像这样的json字符串

[ { 
"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

我的意思是这是一种定义对象的正确方法吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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是一个对象,其中键是人的ID,每个键的数据是人物对象本身。因此,您可以访问如下项目:

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