Typescript konvertera en array till JSON
Jag har en komplicerad datastruktur som jag behöver konvertera till JSON. Problemet är att mina fältnamn och värden finns i en array.
Till exempel har jag följande (förenklat från min kodbas):
let SampleData = [
{ Field: 'Key', Value: '7'},
{ Field: 'City', Value: 'Some City'},
{ Field: 'Description', Value: 'Some Description'}
];
I grund och botten är mina data en array där det första elementet är databasens kolumnnamn och det andra elementet är datan i kolumnen. Jag försöker få ett JSON-objekt som är:
{ Key: 7, City: 'Some City', Description: 'Some Description' }
Min verkliga kod har fälten och data är strukturerad inom objektet, så jag kan helt enkelt inte använda Object.create() eller Object.assign() så långt jag kan få det att fungera.
Jag har försökt loopa igenom för att bygga en enkel sträng och sedan använda JSON.parse för att bryta isär den, men detta verkar som mycket overhead för något som jag trodde skulle vara enklare.
Svar #1
Som du bad om, här är hur man gör det:
- Kartlägga arrayen till ett objekt
- Konvertera objektet till JSON
let array = [{
Field: 'Key',
Value: '7'
},
{
Field: 'City',
Value: 'Some City'
},
{
Field: 'Description',
Value: 'Some Description'
}
];
// #1 Mapping the array to an object...
let obj = {};
array.forEach(item => obj[item.Field] = item.Value);
// #2 Converting the object to JSON...
let json = JSON.stringify(obj);
console.log(json);Bonus (ES6 + reduce):
const obj = array.reduce((acc, { Field, Value }) => ({ ...acc, [Field]: Value }), {});
