如何将 json 对象制作为 json 数组

我有一个 json 作为 api 调用的一部分返回,如下所示。


{

  'D1': {

    'name': 'Emp1',

    'Age':22

  },

  'D2': {

    'name': 'Emp2',

    'Age':43

  },

};

我想将其转换为数组。即采用以下格式。


[

  'D1': {

    'name': 'Emp1',

    'Age':22

  },

  'D2': {

    'name': 'Emp2',

    'Age':43

  },

];

我正在尝试使用下面的代码来做到这一点。


let obj = {

  'D1': {

    'name': 'Emp1',

    'Age':22

  },

  'D2': {

    'name': 'Emp2',

    'Age':43

  },

};

 

 let wholeArray = Object.keys(obj).map(key => obj[key]);

 

 console.log(wholeArray);

但它正在剥离外部 JSON 键。

请让我知道我哪里出了问题以及如何获得预期的输出。


沧海一幻觉
浏览 128回答 2
2回答

白猪掌柜的

您可以将对象分成只有一个键/值对的数组。let object = { D1: { name: 'Emp1', Age:22 }, D2: { name: 'Emp2', Age:43 } },    array = Object        .entries(object)        .map(pair => Object.fromEntries([pair]));console.log(array);.as-console-wrapper { max-height: 100% !important; top: 0; }

倚天杖

这:[  'D1': {    'name': 'Emp1',    'Age':22  },  'D2': {    'name': 'Emp2',    'Age':43  },];根本不存在。数组没有键,对象有。你最多能做的是:[  {    'D1': {      'name': 'Emp1',      'Age':22    }  },{    'D2': {      'name': 'Emp2',      'Age':43    }  }];具有单个键的对象数组。用于执行此操作的一种代码变体:let obj = {  'D1': {    'name': 'Emp1',    'Age':22  },  'D2': {    'name': 'Emp2',    'Age':43  },}; //let wholeArray = Object.keys(obj).map(key => obj[key]);let wholeArray = Object.keys(obj).map(key => {  let ret={};  ret[key]=obj[key];  return ret;}); console.log(wholeArray);旁注:过去 2-3 天我看到很多类似的问题,人们想要带有键的“JSON 数组”,并且他们还小心地在数组末尾放置一个“空”逗号。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript