2013-10-28 3 views
1

Я получаю один JSON в этой структуре:Создание динамического JSON из уже существующих JSON

{ 
data: { 
    ads: [ 
      {   
      name: "0", 
      id: "81" 
      }, 
      {   
      name: "0", 
      id: "82" 
      }   
     ] 
    } 
} 

я хочу создать еще один JSON от существующего, как это.

{ 
json{ 
    81:[ 
      {   
       name: "a", 
       id: "81" 
      }, 
     ] 
    82:[ 
     {   
       name: "c", 
       id: "82" 
      } 
    ] 
    } 

} 

Я не получаю, как создать в соответствии с идентификатором. Может ли кто-нибудь помочь мне в этом. Использование JavaScript я хочу, чтобы создать этот

ответ

3

Вы можете использовать bracket notation для достижения этой цели:

var obj = { 
    data: { 
     ads: [ 
      {   
      name: "0", 
      id: "81" 
      }, 
      {   
      name: "0", 
      id: "82" 
      }   
     ] 
    } 
}; 

var newobj = { 
    json: {} 
}; 
for(var i in obj.data.ads) { 
    var a = obj.data.ads[i]; 
    if(!(a.id in newobj.json)) { 
     newobj.json[a.id] = []; 
    } 
    newobj.json[a.id].push({ name: a.name, id: a.id }); 
} 

Вот fiddle продемонстрировать.

+0

Я думаю, что использование «document.write» вместо «console.log» будет лучше в jsfiddle для этого примера. – itspoma

+0

document.write запрещен в JSFiddle. Ваша скрипка не загружается для меня в Chrome – CodingIntrigue

+0

np. которые попробуют это: http://jsfiddle.net/kdsDg/2/ – itspoma

Смежные вопросы