2017-03-24 4 views
1

ich eine flache Json-Array haben, die Daten wie folgt speichern:Convert Wohnung JSON Array zu JSON-Objekt in NodeJS


[ 
{ 
    "prop1": "prop1Data1" 
}, 
{ 
    "prop2": "prop2Data1" 
}, 
{ 
    "prop3.name": "Tom" 
} 
] 

Wie kann ich diese Daten in einfachen JSON-Objekt in Knoten js wie folgt konvertieren:


{ "prop1": "prop1Data1", "prop2": "prop2Data1", "prop3.name": "Tom" } 
+0

Es war fast genau vor ein paar Minuten Frage. http://stackoverflow.com/questions/43008212/reduces-array-of-objects-into-object/43008248 –

+0

Hmm, nicht genau. 'Array [0]'? Bitte lies auch die Verwendungsbeschreibung von 'json'. – trincot

+0

@ Maytham-ɯɐɥʇʎɐɯ, nicht wirklich. Es gibt Strings und keine Objekte. –

Antwort

5

könnten Sie Object.assign und spread syntax ... für das Array verwenden verwenden.

var array = [{ prop1: "prop1Data1" }, { prop2: "prop2Data1" }, { "prop3.name": "Tom" }], 
 
    object = Object.assign({}, ...array); 
 

 
console.log(object);

ES5 mit Array#reduce und durch die Schlüssel iterieren.

var array = [{ prop1: "prop1Data1" }, { prop2: "prop2Data1" }, { "prop3.name": "Tom" }], 
 
    object = array.reduce(function (r, o) { 
 
     Object.keys(o).forEach(function (k) { 
 
      r[k] = o[k]; 
 
     }); 
 
     return r; 
 
    }, {}); 
 

 
console.log(object);

+0

es gibt mir Syntaxfehler für ... – realcodes

+0

@realcodes, funktioniert der zweite Ansatz für Sie? –

0

Die Art und Weise, dass ich es wie so war getan haben, da es in einem Array ist.

var original = [{"prop1": "prop1Data1"},{"prop2": "prop2Data1"},{"prop3.name": "Tom"}]; 

var propStore = { 
    prop1 : '', 
    prop2 : '', 
    prop3 : '' 
} 
propStore.prop1 = original[0]["prop1"]; 
propStore.prop2 = original[0]["prop2"]; 
propStore.prop3 = original[0]["prop3"]; 

console.log(propStore);