112 Stimmen

Zwei JSON-Objekte verketten

Ich habe zwei JSON-Objekte mit der gleichen Struktur und ich möchte sie mit Javascript zusammenfügen. Gibt es eine einfache Möglichkeit, dies zu tun?

0 Stimmen

Wie genau wollen Sie sie zusammenfügen? Jedes Element der beiden Objekte oder beide Objekte als neues Objekt mit den Ursprungsobjekten als Elementen oder ?

2 Stimmen

Grundsätzlich habe ich ein Array von 10 Json-Objekte. Ich mache dann einen Ajax-Aufruf, um weitere 10 Json-Objekte zu erhalten und ich möchte sie zusammenfügen, um ein Array von 20 Objekten zu erstellen.

0 Stimmen

Haben Sie JSON Objekte (deserialisiert in eine Variable vom Typ Object) oder Zeichenketten (serialisierte Form)?

20voto

tushar Punkte 143

Wenn Sie TypeScript verwenden, können Sie den Spread-Operator ( ... )

var json = {...json1,...json2}

0 Stimmen

Danke!, aus irgendeinem Grund, dies haben besser auf React gearbeitet, mit Render-Status zu verwenden

18voto

Soviut Punkte 83233

Eine Lösung ist die Verwendung einer Liste/eines Arrays:

var first_json = {"name":"joe", "age":27};
var second_json = {"name":"james", "age":32};

var jsons = new Array();
jsons.push(first_json);
jsons.push(second_json);

Ergebnis

jsons = [
    {"name":"joe", "age":27},
    {"name":"james", "age":32}
]

2 Stimmen

Husten, was ist mit [first_json, second_json] ?

1 Stimmen

Das ist sicherlich richtig, wenn der OP hat nur zwei Objekte, aber da sie ausdrücklich erwähnt Verkettung, schien es wahrscheinlicher, dies war ein erfundenes Beispiel auf der Suche nach einer Möglichkeit, anhängen.

12voto

J.C. Gras Punkte 4099

Sie können verwenden Object.assign() Methode. Die Methode Object.assign() wird verwendet, um die Werte aller aufzählbaren eigenen Eigenschaften von einem oder mehreren Quellobjekten in ein Zielobjekt zu kopieren. Sie gibt das Zielobjekt zurück. [1]

var o1 = { a: 1 }, o2 = { b: 2 }, o3 = { c: 3 };

var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }

3 Stimmen

Der bisher beste, prägnante Code mit einem relevanten Beispiel! Es wäre schön, wenn Sie klären, was passiert, wenn die Schlüssel nicht eindeutig über verschiedene Objekte sind :)

6voto

Breton Punkte 14972

Okay, Sie können dies in einer Zeile Code zu tun. Sie benötigen json2.js für diese (Sie wahrscheinlich bereits haben.). die beiden json Objekte hier sind unparsed Zeichenfolgen.

json1 = '[{"foo":"bar"},{"bar":"foo"},{"name":"craig"}]';

json2 = '[{"foo":"baz"},{"bar":"fob"},{"name":"george"}]';

concattedjson = JSON.stringify(JSON.parse(json1).concat(JSON.parse(json2)));

2voto

Rejayi CS Punkte 974

Versuchen Sie es einfach mit dem Unterstrich

var json1 = [{ value1: '1', value2: '2' },{ value1: '3', value2: '4' }];
var json2 = [{ value3: 'a', value4: 'b' },{ value3: 'c', value4: 'd' }];
var resultArray = [];
json1.forEach(function(obj, index){
  resultArray.push(_.extend(obj,  json2[index]));
});

console.log("Result Array", resultArray);

Ergebnis

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X