我使用xml2js在Angular中将一些xml转换为json,如下所示:
showData() {
xml2js.parseString(this.xml, (err, result) => {
this.text = result;
console.log(this.text);
})
}它工作得很好,我在我的控制台中获得了JSON,但我在弄清楚如何访问特定数据时遇到了麻烦。下面是JSON格式:

我想访问属性
,以及
在
..。我想console.log并使用这些属性中的值,但不知道如何做到这一点。
发布于 2021-03-02 00:50:32
我首先要做的是将UIElement数组放入它自己的数组中。所以你要做这样的事情
const uiElmentArray = this.text['cm:property-placeholder']['cm:default-properties'][0]['UIInput'][0]['UIElement'];
/**
uiElementArray = [
{$: {id: 'customerName', ...}},
{$: {id: 'mm_test_aggregate.interval', ...}},
...
]
**/在那里,您可以映射内容以摆脱
从数组
const updatedArray = uiElementArray.map(uiElement => uiElement.$);
/**
updatedArray = [
{id: 'customerName', ...},
{id: 'mm_test_aggregate.interval', ...},
...
];
**/在那里,您可以遍历您的元素以显示它们
updatedArray.forEach(uiElement => {
console.log(uiElment)
});让最终的代码看起来像这样:
showData() {
xml2js.parseString(this.xml, (err, result) => {
const uiElementArray = result['cm:property-placeholder']['cm:default-properties'][0]['UIInput'][0]['UIElement'];
const updatedArray = uiElementArray.map(uiElement => uiElement.$);
updatedArray.forEach(uiElement => {
console.log(uiElment)
});
})
}它可以被压缩为如下所示:
showData() {
xml2js.parseString(this.xml, (err, result) => {
this.myData = result['cm:property-placeholder']['cm:default-properties'][0]['UIInput'][0]['UIElement'].map(uiElement => uiElement.$);
})
}https://stackoverflow.com/questions/66425999
复制相似问题