2016-04-07 18 views
-3

'a göre bir araya getirme Json formatını birleştirmeye çalışıyorum (tercih edilen alt çizgi kullanarak) ancak nasıl yapılacağından emin değilim. İlk jsonun eşlenecek _id göstergesi yok.İki json formatını

JSON 1:

{ 
    "0001": { 
     "answer": "sad" 
    }, 
    "0002": { 
     "answer": "sad1" 
    } 
} 

JSON 2:

[ 
    { 
     "_id": "0001", 
     "question": "who am I" 
    }, 
    { 
     "_id": "0002", 
     "question": "How old are you?" 
    } 
] 

Nihai Sonuç birleştirdikten sonra: yaklaşım için

[ 
    { 
     "_id": "0001", 
     "question": "who am I", 
     "answer": "sad" 
    }, 
    { 
     "_id": "0002", 
     "question": "How old are you?", 
     "answer": "sad1" 
    } 
] 

i aşağıdaki formata JSON 1 dönüştürmeye çalışıyorum İlk ama elde edemedi.

[ 
    { 
     "_id": "0001", 
     "answer": "sad" 
    }, 
    { 
     "_id": "0002", 
     "answer": "sad1" 
    } 
] 
+2

gibi kolay (o => { o.answer = obj [o._id] .answer; dönüş o; }) '. Ama ben hiçbir şey denemedim. – Tushar

+1

Lütfen bir göz atın ** JSON 1 ** bir dizi değil. – Fabricio

+0

@Fabricio evet Bunun farkındayım. – stackdisplay

cevap

1

Ok, bu nedenle yeni cevap elemanı eklemek için bir foreach yapabilirsiniz:

var json1 = { 
    "0001": { 
     "answer": "sad" 
    }, 
    "0002": { 
     "answer": "sad1" 
    } 
}; 

var json2 = [ 
    { 
     "_id": "0001", 
     "question": "who am I" 
    }, 
    { 
     "_id": "0002", 
     "question": "How old are you?" 
    } 
]; 

json2.forEach(function(o) { 
    o.answer = json1[o._id].answer; 
}); 

console.log(json2); 

O yardımcı olur umarım: D arr.map `olarak

+0

Merhaba, nedir? json1? Benim için işe yaramıyor – stackdisplay

+0

Üzgünüm kodda bir yazım hatası yaşadım. Lütfen içinde ** a ** ile ** json1 ** değiştirdiğimi kontrol edin. Şimdi benim için çalışıyor. – Fabricio

+0

@stackdisplay - 'json1' yalnızca değişken bir addır. JSON'un sadece standart bir JS nesnesi olduğunu ve bir tane gibi kullanılabileceğini unutmayın. – evolutionxbox

İlgili konular