【问题标题】:How to format array list to json [duplicate]如何将数组列表格式化为json [重复]
【发布时间】:2019-08-06 15:02:42
【问题描述】:

我正在尝试从数组列表中获取 json 对象

arrayList [
0: {name: "01", value: "3424234234"} 
1: {name: "17", value: "26021734"}
2: {name: "10", value: "435345"} 
3: {name: "21", value: "3453"}]

我已将上面的数组转换为如下所示的 json

var getCode={};
getCode = Object.assign({}, arrayList );

我得到如下结果

getCode 
{
0: {name: "01", value: "3424234234"} 
1: {name: "17", value: "26021734"} 
2: {name: "10", value: "435345"} 
3: {name: "21", value: "3453"} 
}

但我需要如下结果

aiCode: 
{
01: "3424234234", 
17: "26021734", 
10: "435345", 
21: "3453"
}

我怎样才能像上面那样得到字符串化的 JSON

【问题讨论】:

  • 为了记录,您正在将数组转换为对象。在这种情况下使用 JSON 这个词,它是一种文本格式,会让人感到困惑。
  • 请使用正确的标签,以便可以回答您问题的用户可以找到它。您拥有 选择的标签与 angular 或 angularjs 无关。这个问题是关于 javascript 和 json 的,不需要更多。
  • 这个问题貌似和JSON无关

标签: javascript json


【解决方案1】:

你可以使用Array#reduce方法。

var res = arrayList
  // iterate over the array
  .reduce((obj, o) => {
    // define property 
    obj[o.name] = o.value;
    // return the object
    return obj;
    // set initial value as an empty object
  }, {})

var arrayList = [{
    name: "01",
    value: "3424234234"
  },
  {
    name: "17",
    value: "26021734"
  },
  {
    name: "10",
    value: "435345"
  },
  {
    name: "21",
    value: "3453"
  }
];

var res = arrayList.reduce((obj, o) => {
  obj[o.name] = o.value;
  return obj;
}, {})

console.log(res)

ES6 object destructuring 相同。

var res = arrayList.reduce((obj, { name, value }) => {
  obj[name] = value;
  return obj;
}, {})

var arrayList = [{
    name: "01",
    value: "3424234234"
  },
  {
    name: "17",
    value: "26021734"
  },
  {
    name: "10",
    value: "435345"
  },
  {
    name: "21",
    value: "3453"
  }
];

    

console.log(res)

spread syntax 的单线解决方案:

var res = arrayList.reduce((obj, { name, value }) => ({ [name] : value, ...obj }), {})

或者

var res = arrayList.reduce((obj, { name, value }) => (obj[name] = value, obj ), {})

【讨论】:

  • 谢谢。完美运行
  • 很高兴它有帮助:)
猜你喜欢
  • 2015-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多