2011-09-26 54 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;