【问题标题】:Converting JSON name/value to array with object literals使用对象文字将 JSON 名称/值转换为数组
【发布时间】:2014-09-02 16:14:10
【问题描述】:

我希望转换如下所示的键值 JSON 代码:

{
    "AK": "Arkansas",
    "NY": "New York",
    "CA": "California"
}

放入一个数组,其中 JSON 中的键值成为对象字面量中的值之一。

0 : {code :"AK", name:"Arkansas"},
1 : {code:"NY", name:"New York"},
2 : {code:"CA", name:"California}

有没有简单的方法可以做到这一点?

【问题讨论】:

  • for .. in 循环是最适合您的方式。试试看。
  • 出于好奇,您为什么要这样做?我问是因为可能有一种方法可以通过另一种方式实现您的目标,而无需执行此步骤。
  • 到目前为止你尝试过什么?你有什么问题?你有问题 a) 解析 JSON 吗? b)迭代对象? c) 创建一个新数组? d) 创建一个新对象? e) 向数组中添加元素?
  • @OliverWatkins 仅供参考,只需一个循环即可解决您的问题。
  • @OliverWatkins - 这个问题不是重复的,但接受的答案可能有助于解决您的问题:stackoverflow.com/questions/14615669/…

标签: javascript json


【解决方案1】:

使用此代码:

var obj = {
    "AK": "Arkansas",
    "NY": "New York",
    "CA": "California"
}
var array1 = [];
for (key in obj) {
    array1.push({
        "code": key,
        "name": obj[key]
    });
}
console.log(array1);

【讨论】:

  • 你听说过代码格式化和缩进吗?
【解决方案2】:

有几种方式,最兼容浏览器的是:

var p = [];
//Places would be your initial object
for (x in places) {
     p.push({code: x, name: places[x]})
}

也许你应该使用lodash 之类的东西来让这样的事情变得更容易

【讨论】:

  • 您能否详细说明一下 lodash 如何让这变得更容易?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
  • 1970-01-01
  • 2020-02-02
  • 2012-07-21
  • 2020-10-02
  • 1970-01-01
相关资源
最近更新 更多