2017-10-30 2 views
-1

Erstellen habe ich so unter eine JSON-Datei:ein JavaScript-Objekt aus JSON Datei

data.json:

[ 
    { 
    "id": 0, 
    "key": "key0", 
    "value": "val0" 
    }, 
    { 
    "id": 1, 
    "key": "key1", 
    "value": "val1" 
    }, 
    { 
    "id": 2, 
    "key": "key2", 
    "value": "val2" 
    }, 
    { 
    "id": 3, 
    "key": "key3", 
    "value": "val3" 
    } 
] 

Nun Ich mag dieses Format dieses json in Javascript-Objekt machen wollen :

JavaScript Object:

{ 
    key0: val0, 
    key1: val1, 
    key2: val2, 
    key3: val3 
} 

Ich habe versucht, eine Lösung mit den Funktionen (wie jeder, Karte, ...) zu finden, aber ich konnte keine Lösung finden. Ich suche nicht nur nach einer Lösung, sondern nach der effizientesten Lösung.

Haben Sie eine Idee?

+0

JSON.parse() und Object.assign –

Antwort

1

reduce ist hier eine gute Option, ebenso wie das Reduzieren von einem Array zu einem Objekt.

var json = `[ 
 
    { 
 
    "id": 0, 
 
    "key": "key0", 
 
    "value": "val0" 
 
    }, 
 
    { 
 
    "id": 1, 
 
    "key": "key1", 
 
    "value": "val1" 
 
    }, 
 
    { 
 
    "id": 2, 
 
    "key": "key2", 
 
    "value": "val2" 
 
    }, 
 
    { 
 
    "id": 3, 
 
    "key": "key3", 
 
    "value": "val3" 
 
    } 
 
]`; 
 

 
var obj = JSON.parse(json).reduce((a,v) => { a[v.key] = v.value; return a; }, {}); 
 
console.log(obj);