如何将JSON值转换为键值对pir

时间:2020-08-16 16:28:37

标签: javascript json

我有以下格式的JSON,需要将2个值转换为javascript中的键/值对

“ column_values”:[ { “ id”:“状态”, “ text”:“正在处理” } ]

我需要结果

“ column_values” [{“ status”:“正在处理”}]

我需要代码来遍历column_values数组并将所有ID和文本对的集合转换为key = id value:Value = text:values

我的结果可能吗?

其他信息...

我正在zapier中解析monday.com api的响应。

api有效负载包含在

const结果= response.json;

完整的api有效负载是

{
  "data": {
    "boards": [
      {
        "name": "Test Board",
        "items": [
          {
            "name": "Name Change",
            "id": "625495642",
            "column_values": [
              {
                "id": "person",
                "text": ""
              },
              {
                "id": "subitems",
                "text": "Subitem 1, Subitem 2"
              },
              {
                "id": "status",
                "text": "Working on it"
              },
              {
                "id": "dropdown",
                "text": "Test1"
              },
              {
                "id": "formula",
                "text": ""
              }
            ]
          }
        ]
      }
    ]
  },
  "account_id": 1111
}

我需要代码来解析数据,并用上面的格式替换column_values,然后将重新格式化的有效载荷传递给

返回结果;

3 个答案:

答案 0 :(得分:1)

您只需将开始的数组映射到具有值的数组。

var column_values = [ { "id": "status", "text": "Working on it" } ]

var KeyValuePairs = column_values.map(cv => [cv.id,cv.text]);

console.log(KeyValuePairs);

答案 1 :(得分:0)

如果每个对象仅包含idtext键,则可以将其映射并删除其他键。

column_values = column_values.map(item => {
  item[item.id] = item.text;
  delete item.id;
  delete item.text;
  return item;
});

答案 2 :(得分:0)

尝试

var column_values = [ { "id": "status", "text": "Working on it" } ]
var res = column_values.map(x => ({[x.id] : x.text}))
console.log(res)