我有来自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。我无法使结构正确。
由于
答案 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()