【问题标题】:How to change json data format from array to array of objects with javascript?如何使用javascript将json数据格式从数组更改为对象数组?
【发布时间】:2020-05-31 03:24:26
【问题描述】:

我正在尝试将数据加载到ag-grid,所以我得到了这种格式的 json 数据:

{"my_data":{"labels":[1,2,3,...], "idx":["idx1", "idx2", ...]}}

我需要它像这样才能将它传递给网格:

{"my_data":[{"labels": 1}, {"labels": 2}, ..., {"idx":"idx1"}, {"idx":"idx2"}, ...}]

有没有一种快速的方法来实现这种格式,或者我必须使用 reducemap 遍历数据?

所需格式示例:https://www.ag-grid.com/sample-data/monthlySales.json

我试图像这样加载数据

var obj = $.parseJSON(JSON.stringify(data));
gridOptions.api.setRowData(obj.mydata.labels);

【问题讨论】:

  • 您需要这种格式或相同对象中的相应索引吗?顺便说一句,你试过什么?
  • 我不懂你
  • 你真的需要一个数组中的所有新对象吗?
  • 每个列/字段在它自己的数组中
  • 请更新问题并添加所需格式。

标签: javascript json ag-grid


【解决方案1】:

使用reduce 会简化。

const data = { my_data: { labels: [1, 2, 3], idx: ["idx1", "idx2"] } };

const updated = Object.entries(data.my_data).reduce((acc, [key, value]) => {
  value.forEach(item => acc.push({ [key]: item }));
  return acc;
}, []);

const data_updated = { my_data: updated };

console.log(data_updated);

【讨论】:

    猜你喜欢
    • 2020-04-14
    • 2021-09-03
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多