将key:value添加到.json文件中

时间:2017-05-17 21:42:24

标签: javascript json node.js file fs

我有这个config.json文件:

{
  "account_name": {
    "min_len": "3",
    "max_len": "15",
    "upperCase": true,
    "lowerCase": true,
    "numbers": true,
    "specialChar": false,
    "capitalize": false,
    "duplication": false,
    "startWithCapital": false
  },
  "password": {
    "min_len": "6",
    "max_len": "20",
    "upperCase": true,
    "lowerCase": true,
    "numbers": true,
    "specialChar": true,
    "capitalize": false,
    "duplication": false,
    "StartWithCapital": false
  }
}

如何从代码中为此.json文件添加其他值? 为了exapmle:

var keysOpt = require('../config/config.json');
KeysOpt.name = "eric"
KeyPot.save() // will save the new field to the file itself

2 个答案:

答案 0 :(得分:3)

您只需使用fs.writeFile() method将JSON写回文件。

这就是你的代码:

var keysOpt = require('../config/config.json');
keysOpt = JSON.parse(keysOpt);
KeysOpt.name = "eric";
// Make whatever changes you want to the parsed data
fs.writeFile('../config/config.json', JSON.stringify(keysOpt));

<强>解释

你只需要:

  1. 解析您的JSON文件的内容,这样您就会获得JavaScript object
  2. 然后,您可以修改它或使用新数据扩展它。
  3. 在将其写回文件之前,您只需要将其设为一个 JSON字符串又回来了。
  4. 最后使用writeFile()方法将其写回JSON文件。
  5. 注意:

    • 请注意,您需要使用writeFileSyn()同步写入 数据到文件。
    • 你应该知道你应该等待writeFile() 回调完成写作,如果你试图写多次 同一个文件。

    您可以查看fs.writeFile()方法的nodeJS文档,其中包含:

      

    请注意,同时使用fs.writeFile多次是不安全的   文件无需等待callback。对于这种情况,   强烈建议使用fs.createWriteStream

答案 1 :(得分:0)

你可以做这样简单的事情:

var fs = require('fs');
var keysOpt = JSON.parse(fs.readFileSync('../config/config.json'));
KeysOpt.name = "eric";
fs.writeFileSync('../config/config.json',JSON.stringify(KeysOpt,null,' '));