2017-10-16 2 views
0

Im Beispiel habe ich diese 2 JSONWie füge ich 2 JSON-Objekte zusammen?

jsonObject1 = [ 
      {"id": "1", "name": "name1", "children": [{"id": "2", "name": "name2"}] }, 
      {"id": "3", "name": "name3", "children": [{"id": "4", "name": "name4"}] } 
      ]; 

jsonObject2 =[ 
      {"id": "4", "name": "name1", "children": [{"id": "6", "name": "name5"}] }, 
      {"id": "5", "name": "name3", "children": [{"id": "7", "name": "name6"}] } 
      ] 

Objekte Wie fusionieren wir die 2 JSONObject in 1 Anpassung auf dem äußeren Objektname und dieses Ergebnis erhalten?

mergedJsonObject = jsonObject1.merge(jsonObject2); 

mergedJsonObject = [ 
        {"id": "1", "name": "name1", "children": [ 
                  {"id": "2", "name": "name2"}, 
                  {"id": "6", "name": "name5"} 
                  ] 
        }, 
        {"id": "3", "name": "name3", "children": [ 
                  {"id": "4", "name": "name4"}, 
                  {"id": "7", "name": "name6"} 
                  ] 
        } 
        ]; 
+0

Ist Ihre Frage zu Java oder Angular? Bitte fügen Sie Ihre Versuche zu einer Lösung –

+0

Ich mache dies in Java, die ich schließlich auf meine eckige Website mit eckigen 2's Baum Knoten implementieren wird. – Ronaldo

+0

Wohin ging JSON ID 5? Es ist nicht klar, was Ihre Merge-Bedingungen sind –

Antwort

1

Da die Objekte in Frage JSONArrays sein passieren, warum nicht (Pseudo-Code):

merge (arr1, arr2) { 
    for (int i=0; i < arr2.length, i++) { 
     JSONObject row = arr2.get(i) 
     arr1.add(row) 
    } 
    return arr1 
+0

Dies doesn füge die Objekte mit übereinstimmenden Namen zusammen, füge nur die Arrays zusammen –

0

so etwas wie die folgenden Versuchen.

for o1 in jsonObject1 
    for o2 in jsonObject2 
     if o1['name'] == o2['name'] 
      o1['children'].push(o2['children']) 
// inspect jsonObject1 

Wahrscheinlich gibt es einen besseren Weg, dies als eine verschachtelte Schleife zu tun, aber was auch immer

Und stellen Sie sicher, dass Sie nicht ein Array in das andere Feld einfügen, sondern das Hinzufügen alle Elemente

+0

Ich habe nicht downvote (in der Tat, ich upvoted). Aber das OP hat nicht explizit gesagt, dass er wollte Dubletten zu entfernen ... Trotzdem - interessante Lösung :) – paulsm4

+0

@ paulsm4 Ziemlich sicher "Wie füge ich die 2 JSONObject in 1" bedeutet das. Liege ich falsch? –