【问题标题】:Mapping object key : value pair to array of object arrays for JSON映射对象键:值对到 JSON 的对象数组数组
【发布时间】:2019-04-28 13:42:30
【问题描述】:

我正在尝试将以下数组转换为 JSON 可以理解的内容,并能够将相同的键/值对附加到每个对象数组,但我一直不知道如何去做。

给定以下对象数组:

{
  "array": [
    {
      "Type": "Current",
      "Item1": "3",
      "Item2": "23",
      "Item3": "90",
      "Item4": null,
      "Year": "2019",
      "Amount": "100"
    },
    {
      "Type": "Current",
      "Item1": "3",
      "Item2": "23",
      "Item3": "90",
      "Item4": null,
      "Year": "2020",
      "Amount": "200"
    },
    {
      "Type": "Current",
      "Item1": "3",
      "Item2": "23",
      "Item3": "90",
      "Item4": null,
      "Year": "2021",
      "Amount": "300"
    },
    {
      "Type": "Change",
      "Item1": null,
      "Item2": null,
      "Item3": null,
      "Item4": null,
      "Year": "2019"
    },
    {
      "Type": "Change",
      "Item1": null,
      "Item2": null,
      "Item3": null,
      "Item4": null,
      "Year": "2020",
      "Amount": ""
    },
    {
      "Type": "Change",
      "Item1": null,
      "Item2": null,
      "Item3": null,
      "Item4": null,
      "Year": "2021",
      "Amount": ""
    }
  ]
}

我需要在每个数组中添加以下内容:

{Title : "title", id : "idNum"}

所以它看起来像:

{
  "Title": "title",
  "ID": "idNum",
  "Type": "Current",
  "Item1": "3",
  "Item2": "23",
  "Item3": "90",
  "Item4": null,
  "Year": "2019",
  "Amount": "100"
},
{
  "Title": "title",
  "ID": "idNum",
  "Type": "Current",
  "Item1": "3",
  "Item2": "23",
  "Item3": "90",
  "Item4": null,
  "Year": "2020",
  "Amount": "200"
},

等等

我什至不确定这是否真的是一个对象数组的数组,因为我承认我对术语有些猜测。最终,我需要将其作为 JSON 对象处理,以便使用 AJAX 提交到 SharePoint 列表。

我是否需要遍历数组中的每个数组,然后添加对象键/值对?

【问题讨论】:

  • 是的,这实际上是一个对象数组

标签: javascript arrays json dictionary object


【解决方案1】:

您可以使用Array.mapspread 并且改变原始数组:

const data = { "array": [ { "Type": "Current", "Item1": "3", "Item2": "23", "Item3": "90", "Item4": null, "Year": "2019", "Amount": "100" }, { "Type": "Current", "Item1": "3", "Item2": "23", "Item3": "90", "Item4": null, "Year": "2020", "Amount": "200" }, { "Type": "Current", "Item1": "3", "Item2": "23", "Item3": "90", "Item4": null, "Year": "2021", "Amount": "300" }, { "Type": "Change", "Item1": null, "Item2": null, "Item3": null, "Item4": null, "Year": "2019" }, { "Type": "Change", "Item1": null, "Item2": null, "Item3": null, "Item4": null, "Year": "2020", "Amount": "" }, { "Type": "Change", "Item1": null, "Item2": null, "Item3": null, "Item4": null, "Year": "2021", "Amount": "" } ] } 

result = data.array.map(x => ({ Title: 'Title', ID: 'idNum', ...x}))

console.log(result)

【讨论】:

  • 太棒了,谢谢!我正在尝试类似下面的东西,但这工作得更快! $(jsonAmountData["array"].each(function( index ) { jsonAmountData["array"][index].Title = "title"; jsonAmountData["array"][index].ID = "idNum"; };
猜你喜欢
  • 1970-01-01
  • 2012-01-11
  • 2022-11-24
  • 2012-05-30
  • 2020-07-22
  • 2018-03-10
  • 1970-01-01
  • 2017-08-25
  • 1970-01-01
相关资源
最近更新 更多