2011-09-26 2 views
-7

가 나는 전체에 해당 ID를 사용하는 모든 개체에 액세스 할 수 있도록이 같은 문자열이 JSON 배열을 변환 할 지금이Coverting JSON 배열은

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

같은 JSON 문자열을 객체 페이지.

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

일부 코드를 제안하십시오. 사전

편집에 고맙습니다 : 이 일을합니다

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

그리고는 내 말은이

user.id.name 

같은 개체에 액세스이 객체를 정의하는 올바른 방법인가?

+1

*** 어떤 ***을 제안하면 *** ***을 중지하고 올바른 방향으로 포인터를 제공합니까? – Matt

+0

전체 문자열을 조작하려고했지만 충분히 효율적으로 보이지 않았습니다. 그래서 나는 나를 인도 할 수있는 코드를 요청했다. – Sourabh

+0

JSON을 생성하는 코드에 액세스 할 수 있습니까? 그것은 쉬운 방법입니다, IMO. –

답변

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 각 키는 사람 개체 자체의 키는 사람들의 ID와 데이터있는 객체입니다. 따라서 다음과 같은 항목에 액세스 할 수 있습니다.