将键:值添加到 .json 文件

Posted

技术标签:

【中文标题】将键:值添加到 .json 文件【英文标题】:add key:value to a .json file 【发布时间】:2017-10-17 12:40:25 【问题描述】:

我有这个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 文件添加其他值? 例如:

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

【问题讨论】:

How to update a value in a json file and save it through node.js的可能重复 【参考方案1】:

您只需使用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));

说明:

你只需要:

    解析您的 JSON 文件的内容,因此您将获得一个 javascript object。 然后您可以对其进行修改或使用新数据对其进行扩展。 在将其写回文件之前,您只需将其设为 再次返回 JSON 字符串。 最后用writeFile()方法写回JSON文件。

注意:

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

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

请注意,在同一个文件上多次使用fs.writeFile 是不安全的 文件无需等待callback。对于这种情况, 强烈推荐fs.createWriteStream

【讨论】:

【参考方案2】:

你可以做一些简单的事情:

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,' '));

【讨论】:

以上是关于将键:值添加到 .json 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 for loop .splitlines 循环将键和值添加到字典

在声明时将键/值添加到字典

高效的方法将键和值添加到scala中的Set Map

将键和值添加到优先级队列中并在 Java 中按键排序

未能将键和值添加到javascript对象

如何将键值对添加到字典中? [复制]