用函数重构Json

时间:2018-04-21 06:12:41

标签: javascript

我有来自xlsx文件的JSON响应,但是我想用函数重构它。

这是旧代码:

{
  "Produtos": [
    [
      "SP",
      "Hamburgueria"
    ],
    [
      null,
      null,
      "IN00001282",
      "Batata 7 MM Corte Fino McCain 2,25 Kg - Caixa com 8 Unidades",
      "$8.85",
      "$1.11"
    ],
    [
      null,
      null,
      "IN000155937",
      "Copo De Fritas 480 ml Kraft - 1000 Unidades",
      "$394.74",
      "$0.39"
    ]
  ]
}

这是一个重组的代码:

{
    "Produtos": {
        "SP": {
            "Hamburgueria": [
                [
                    null,
                    null,
                    "IN00001282",
                    "Batata 7 MM Corte Fino McCain 2,25 Kg - Caixa com 8 Unidades",
                    "$8.85",
                    "$1.11"
                ],
                [
                    null,
                    null,
                    "IN00001282",
                    "Batata 7 MM Corte Fino McCain 2,25 Kg - Caixa com 8 Unidades",
                    "$8.85",
                    "$1.11"
                ]
            ]
        }
    }
}

有没有人可以帮我用Javascript代码来重构JSON。我无法使结构正确。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用reduce重新构建对象。



let oldObj={"Produtos":[["SP","Hamburgueria"],[null,null,"IN00001282","Batata 7 MM Corte Fino McCain 2,25 Kg - Caixa com 8 Unidades","$8.85","$1.11"],[null,null,"IN000155937","Copo De Fritas 480 ml Kraft - 1000 Unidades","$394.74","$0.39"]]}

let newObj = Object.entries(oldObj).reduce((c, v) => {
  let [l, a] = v, h = a.shift();
  c[l] = h.reverse().reduce((r, o) => {return {[o]: r};}, a);
  return c;
}, {})

console.log(newObj);




Doc:reduce()