【发布时间】:2022-01-16 21:48:05
【问题描述】:
我有一个从 XML 生成的通用 json。
{
"contextInfoDTOList": [
{
"key": "context_info",
"list": [
{
"key": "composition",
"list": [
{
"key": "parts",
"list": [
{
"key": "part",
"list": [
{
"list": [
{
"key": "materials",
"list": [
{
"key": "material",
"list": [
{
"key": "material_value",
"value": "100"
},
{
"key": "material_name",
"value": "polyester"
}
]
}
]
},
{
"key": "part_name",
"value": "LINING"
}
]
},
{
"list": [
{
"key": "materials",
"list": [
{
"key": "material",
"list": [
{
"key": "material_value",
"value": "100"
},
{
"key": "material_name",
"value": "cow leather"
}
]
}
]
},
{
"key": "part_name",
"value": "OUTER SHELL"
}
]
}
]
}
]
}
]
},
{
"key": "explanation"
}
]
}
]
}
我需要将信息提取成这样的:
COMPOSITION
Lining
100 % polyester
Outer Shell
100 % cow leather
我尝试了一种 forEach 方法,加入了键(成分、零件、材料...),但它变得很脏,我无法获得材料列表。
我正在考虑使用reduce来获取对象,但我不知道如何通过嵌套列表传递对象并使用递归。
想要的对象:
export class ContextInfo {
composition: Composition;
explanation: string;
}
export class Composition {
parts: Part[] = [];
}
export class Part {
partName: string;
materials: Material[] = [];
}
export class Material {
name: string;
value: number;
}
任何帮助将不胜感激。提前致谢!
【问题讨论】:
标签: javascript typescript recursion