首页 > 解决方案 > 映射传入的 JSON

问题描述

我有这个传入的 json 响应

      "orders": [
        {
          "items": ["Mie goreng", "Ayam bakar"],
          "qty": ["2", "1"],
          "order_time": "17:30"
        },
      ]

我想把它映射成这样:

      "orders": [
        {
          "items": [
              {item: "Mie goreng", qty: "2"},
              {item: "Ayam bakar", qty: "1"},
          ],
          "order_time": "17:30"
        },
      ]

基本上我想将项目和数量映射到数组对象中

标签: arraysjson

解决方案


您可以映射到orders数组上,然后在这些迭代中映射到items数组上。Array#map将迭代索引作为第二个参数,可以帮助找到迭代项的数量。例如,类似:

const input = {
  "orders": [
    {
      "items": ["Mie goreng", "Ayam bakar"],
      "qty": ["2", "1"],
      "order_time": "17:30"
    },
  ]
};

const output = {
  orders: input.orders.map((order) => ({
    items: order.items.map((item, index) => ({
      item,
      qty: order.qty[index]
    })),
    order_time: order.order_time
  }))
};

推荐阅读