Node Js 访问 Json 文件

Node Js Acessing a Jason File

对 JSON 还是个新手,虽然我在网上搜索并创建了一个函数来创建初始化文件(如果 none 存在),但我将搜索空白并检索新文件的数据现有文件或我如何添加新条目或更新新条目

到目前为止我可以读取文件并在控制台日志中导出resits所以我知道分配工作,它是一个全局变量所以数据应该在读取文件循环之外保留但是当我尝试访问它时稍后制作本地数组我将从中提取数据并用于稍后更新它读取为未定义。

fs.readFile(path, 'utf8', (error, data) => {
    if(error){
      console.log(error);
      return;
    }
    //console.log(JSON.parse(data));
    JSONData = JSON.parse(data);
    for (let i = 0; i < JSONData.length; i++) {
      console.log(i+": ["+JSONData[i].unique+"] "+JSONData[i].name);
    }
});//fs.readFile
  var playerKey = "KuroTO";
    playerKey = playerKey.toLowerCase();
    
    for (let i = 0; i < JSONData.length; i++) {
      if (JSONData[i].unique.toLowerCase() == playerKey){
        console.log("["+i+"] "+JSONData[i].unique.toLowerCase()+": "+playerKey);
        PlayerCard1.push(JSONData[i].userid);//0
        PlayerCard1.push(JSONData[i].username);//1
        PlayerCard1.push(JSONData[i].unique);//2
        PlayerCard1.push(JSONData[i].name);//3
        PlayerCard1.push(JSONData[i].avatarurl);//4
        PlayerCard1.push(JSONData[i].level);//5
        PlayerCard1.push(JSONData[i].Rank);//6
        PlayerCard1.push(JSONData[i].henshined);//7
        PlayerCard1.push(JSONData[i].Strength);//8
        PlayerCard1.push(JSONData[i].Perception);//9
        PlayerCard1.push(JSONData[i].Endurance);//10
        PlayerCard1.push(JSONData[i].Wisdom);//11
        PlayerCard1.push(JSONData[i].Intelligence)//12;
        PlayerCard1.push(JSONData[i].Luck)//13;
        PlayerCard1.push(JSONData[i].Agility)//14;
        PlayerCard1.push(JSONData[i].Flexability)//15;
        PlayerCard1.push(JSONData[i].RatedSpeed)//16;
      };//if unique matches
    };//for
    

这是我想做的伪代码概念 如果 (JSONData.stringify.unique == {SearchUID}){toonname = JSONData.stringify.name;}

据我所知,你不能真的追加只是用新数据重写文件,我想我可以自己弄清楚,一旦我弄清楚如何将文件变成一个数组,我可以像这样搜索以上

要阅读 JSON,只需需要文件。

JSON:

{
    "key": "H"
}

JS:

let jsonFile = require("./path/to/json");
console.log(jsonFile.key); // H

编辑就这么简单。

let jsonFile = require("./path/to/json");
jsonFile.key = "A" 
console.log(jsonFile.key) // A

保存编辑需要使用文件系统:

const fs = require("fs")
let jsonFile = require("./path/to/json");
jsonFile.key = "A" 
// first argument is the file path
// second argument is the JSON to write - the file is overwritten already 
// due to above, so just JSON.stringify() the required file.
// third argument is an error callback
fs.writeFile("./path/to/jsonFile", JSON.stringify(jsonFile), (err) => {
    if (err) throw new Error(err);
});

如果你愿意,这也可以用来稍微清理你当前的 init 函数,但这当然取决于你。