【发布时间】:2019-11-10 07:52:26
【问题描述】:
我正在开发需要将响应 json 转换为不同格式并将其传递给不同 API 的应用程序。我发现很难转换所需的结构。
输入:
var value = `[
{
"PRODUCT_GROUP": "Accessories",
"MATERIAL_GROUP": "S98",
"MATERIAL": "300154",
"MATERIAL_DESC": "BLOCKS",
"PP_AD": 45.7,
"PP_DISC_OLD": 34.7
},
{
"PRODUCT_GROUP": "Accessories",
"MATERIAL_GROUP": "S98",
"MATERIAL": "000000000000300155",
"MATERIAL_DESC": "PALLET",
"PP_AD": 123.7,
"PP_DISC_OLD": 43.7
},
{
"PRODUCT_GROUP": "Accessories",
"MATERIAL_GROUP": "S99",
"MATERIAL": "300155",
"MATERIAL_DESC": " WOODEN",
"PP_AD": 23.7,
"PP_DISC_OLD": 23.7
}
]`;
我需要将其转换为下面提到的结果。
输出:
{
"categoreies": [{
"PRODUCT_GROUP": "Accessories",
"MATERIAL_GROUP": "S98",
"categoreies": [{
"MATERIAL": "300154",
"MATERIAL_DESC": "BLOCKS",
"PP_AD": 45.7,
"PP_DISC_OLD": 34.7
}, {
"MATERIAL": "000000000000300155",
"MATERIAL_DESC": "PALLET",
"PP_AD": 123.7,
"PP_DISC_OLD": 43.7
}]
},
{
"PRODUCT_GROUP": "Accessories",
"MATERIAL_GROUP": "S99",
"categoreies": [{
"MATERIAL": "300155",
"MATERIAL_DESC": " WOODEN",
"PP_AD": 23.7,
"PP_DISC_OLD": 23.7
}]
}
]
}]
我试图循环代码并形成一个对象,但得到了想要的结果。
请帮忙。
value=JSON.parse(value);
let firstobj={},arr1=[],secobj={},arr2=[],finalobj={};
value.forEach((items)=>{
firstobj.PRODUCT_GROUP=items.PRODUCT_GROUP;
firstobj.MATERIAL_GROUP=items.MATERIAL_GROUP;
arr1.push(firstobj);
secobj.MATERIAL=items.MATERIAL;
secobj.MATERIAL_DESC=items.MATERIAL_DESC;
arr2.push(secobj);
finalobj.CATEGORIES=arr2;
console.log(finalobj)
})
你能帮我把输入的json转换成结果的json吗
【问题讨论】:
-
你忘了问一个问题。
-
@zerkms: 需要将输入json转换成结果json。
-
问题不是需求或愿望的表达。它通常带有一个问号。您在尝试时遇到的具体编程相关问题是什么?
-
@trincot 我无法转换为所需的格式。这需要传递给 API。如果您可以指导如何转换为所需的格式。
-
"。如果您能指导如何转换为所需的格式。" --- 从更简单的开始:从原始数组中取出一项,并将其属性之一转换为所需的格式。只有一个对象的一个属性。你能做到吗?如果不是 - 你现在对那个小问题的确切问题是什么?
标签: javascript node.js