Javascript 动态JSON引用节点.js

Javascript 动态JSON引用节点.js,javascript,node.js,json,Javascript,Node.js,Json,我有一个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 = "Som

我有一个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]),但我得到了各种新的和有趣的方式,它不起作用

我的问题是:

  • 为什么??我理解脚本不理解 “testEnt”没有正确理解我现在的意思是 引用,而不是字符串,但我不明白我能做什么 关于它
  • 如何以这种方式动态引用条目?我想 使脚本灵活,但似乎找不到有关的信息 特别是如何做到这一点

  • 在您的示例中,您写道:

    jFile.[testEnt]
    
    正确的语法是:

    jFile[testEnt]
    

    您尝试动态访问和编辑对象属性的方式是正确的,但是您有一个小的语法错误。

    在您的示例中,您写道:

    jFile.[testEnt]
    
    正确的语法是:

    jFile[testEnt]
    

    您尝试动态访问和编辑对象属性的方式是正确的,但是您有一个小的语法错误。

    要使用var中的键更新对象,可以执行以下操作:

    obj[varKey] = 'what you want';
    
    根据您的需要:

    var testEnt = 'Entry' + 1;
    jFile[testEnt] = "SomeText";
    fs.writeFileSync( "jFile.json", JSON.stringify(jFile, null, 2), "utf8");
    

    要使用变量中的键更新对象,可以执行以下操作:

    obj[varKey] = 'what you want';
    
    根据您的需要:

    var testEnt = 'Entry' + 1;
    jFile[testEnt] = "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");
    

    试试这个,它可能对你有帮助

    var testEnt = 'Entry' + 1;
    jFile[testEnt] = "SomeText";
    fs.writeFileSync( "jFile.json", JSON.stringify(jFile, null, 2), "utf8");
    

    您需要这样做:

    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"
    }
    

    您需要这样做:

    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"
    }