Typescript将数组转换为JSON

Ste*_*ott 2 json typescript

我有一个复杂的数据结构,需要转换为JSON。问题是我的字段名称和值在数组中。

例如,我有以下内容(从我的代码库简化):

let SampleData = [
        { Field: 'Key', Value: '7'},
        { Field: 'City', Value: 'Some City'},
        { Field: 'Description', Value: 'Some Description'}
];
Run Code Online (Sandbox Code Playgroud)

基本上,我的数据是一个数组,其中第一个元素是数据库列名称,第二个元素是列中的数据。我正在尝试获取一个JSON对象,该对象是:

{ Key: 7, City: 'Some City', Description: 'Some Description' }
Run Code Online (Sandbox Code Playgroud)

我真正的代码具有字段和数据是对象内的结构,所以不能简单地使用的Object.create()或Object.assign()据我可以得到工作。

我尝试遍历以构建一个简单的字符串,然后使用JSON.parse对其进行分解,但是对于我认为会更简单的操作而言,这似乎有很多开销。

Max*_*nas 5

如您所问,这是如何做的:

  1. 将数组映射到对象
  2. 将对象转换为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);
Run Code Online (Sandbox Code Playgroud)