获取名称中包含'dot'的 JSON 对象属性



>*** 问题已解决:json.stringify 是问题所在。 当它消失时更容易处理。

var DBName = result['Document']['SW.Blocks.GlobalDB']['AttributeList']['Name'];

我有一个 xml 文件,它描述了来自 PLC 的数据块,并希望使用 JS 获取特定值。 我用 xml2js 模块转换了它,所以我有一个 json 对象可以使用。

{
"Document": {
"Engineering": {
"$": {
"version": "V15"
}
},
"SW.Blocks.GlobalDB": {
"$": {
"ID": "0"
},             
"HeaderAuthor": "",
"HeaderFamily": "",
"HeaderName": "",
"HeaderVersion": "0.1",
"Interface": {
... 
...
"Name": "datentypen",
"Number": "6",
"ParameterModified": {
"_": "2018-09-05T11:49:37.0862092Z",
"$": {
"ReadOnly": "true"
}
},
}
}

我想打印出"名称"和"数字",它们是"属性列表"的一部分。 那么如何处理"SW.Blocks.GlobalDB"?

收到错误:"类型错误: 无法读取未定义的属性'SW'">

var fs = require('fs');
var xml2js = require('xml2js');
var xml = fs.readFileSync('datentypen.xml');
var parser = new xml2js.Parser({explicitArray: false});
parser.parseString(xml, function(err, result) {
if (err) {
console.error('xml2js.parse error: ',err);
} else {
var injson = JSON.stringify(result,null,3);
console.log(injson);
//      var injson2 = JSON.parse(injson);
//      var DBnummer = injson.Document.SW.Blocks.GlobalDB.AttributeList["Name","Number"];
//      console.log(DBNummer);
};
});

我读了很多关于这个主题的文章,但没有找到具体的答案。 当我写["SW.Blocks.GlobalDB"],一个关于 [ 的错误出现了。

您可以尝试使用键值对读取 JSON 数组吗?我有类似的问题,但使用不同的编程语言。

最新更新