我有以下格式的JSON文件“ jFile”:
{
"Entry1": null,
"Entry2": "SomeValue"
}
以下格式的某些node.js会正确更新文件:
jFile.Entry1= "SomeText";
fs.writeFileSync( "jFile.json", JSON.stringify(jFile, null, 2), "utf8");
但是,如果我这样做:
var testEnt = 'Entry' + 1;
jFile.testEnt = "SomeText";
fs.writeFileSync( "jFile.json", JSON.stringify(jFile, null, 2), "utf8");
脚本运行无错误,但从不更新'Entry1'。我尝试以几种方式引用它(例如jFile。[testEnt]),但是我得到了各种新的有趣的方式,它们都无法使用。
我的问题是:
答案 0 :(得分:2)
在您的示例中,您写道:
jFile.[testEnt]
正确的语法是:
jFile[testEnt]
您尝试动态访问和编辑对象属性的方式是正确的,但是存在较小的语法错误。
答案 1 :(得分:1)
要使用var中的键更新对象,您可以执行以下操作:
obj[varKey] = 'what you want';
根据您的需要:
var testEnt = 'Entry' + 1;
jFile[testEnt] = "SomeText";
fs.writeFileSync( "jFile.json", JSON.stringify(jFile, null, 2), "utf8");
答案 2 :(得分:0)
您需要这样做:
const fs = require('fs');
const jFile = require('./jFile.json');
jFile.Entry1= "SomeText";
fs.writeFileSync( "jFile.json", JSON.stringify(jFile, null, 2), "utf8");
const testEnt = 'Entry' + 6;
jFile[testEnt] = "SomeText";
fs.writeFileSync( "jFile.json", JSON.stringify(jFile, null, 2), "utf8");
要点在这里:jFile[testEnt] = "SomeText";
输出:
{
"Entry1": "SomeText",
"Entry2": "SomeValue",
"Entry6": "SomeText"
}
答案 3 :(得分:-1)
尝试此操作可能会对您有所帮助。
var testEnt = 'Entry' + 1;
jFile[testEnt] = "SomeText";
fs.writeFileSync( "jFile.json", JSON.stringify(jFile, null, 2), "utf8");