为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

沧海一幻觉 2023-07-06 19:49:01
我有一个 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 键。请让我知道我哪里出了问题以及如何获得预期的输出。
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

您可以将对象分成只有一个键/值对的数组。


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; }


查看完整回答
反对 回复 2023-07-06
?
倚天杖

TA贡献1828条经验 获得超3个赞

这:


[

  '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 数组”,并且他们还小心地在数组末尾放置一个“空”逗号。



查看完整回答
反对 回复 2023-07-06
  • 2 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信