Node.js中如何调用含连字符的JSON属性值?
如何访问带连字符的JSON/JS对象属性?
在JavaScript中,点语法访问对象属性时,属性名必须符合标识符规则——不能包含连字符、空格,也不能以数字开头。像database-name这种带连字符的属性,点语法会把它错误解析成database减name的表达式,导致语法报错,必须改用方括号语法来访问和修改。
把你代码里的这一行:
result.databases.database-name = 'ArangoDB';
替换成:
result.databases['database-name'] = 'ArangoDB';
修改后的完整代码如下:
const fs = require("fs"); const xml2js = require('xml2js'); fs.readFile("databases.xml", "utf-8", (err, data) => { if (err) { throw err; } xml2js.parseString(data, (err, result) => { if (err) { throw err; } // 改用方括号语法访问带连字符的属性 result.databases['database-name'] = 'ArangoDB'; const builder = new xml2js.Builder(); const xml = builder.buildObject(result); fs.writeFile('new-databases.xml', xml, (err) => { if (err) { throw err; } console.log(`Updated XML is written to a new file.`); }); }); });
内容的提问来源于stack exchange,提问作者Alwaysdoubt
相关产品推荐
相关产品推荐

