仍然是 JSON 的新手,雖然我搜索了網路并創建了一個函式來創建一個初始化檔案,如果不存在我來搜索和檢索新現有檔案的資料或者我如何添加新條目或更新新條目的空白
到目前為止,我可以讀取檔案并將其匯出到控制臺日志中,因此我知道分配作業,它是一個全域變數,因此資料應該保留在讀取檔案回圈之外,但是當我稍后嘗試訪問它以制作本地時陣列我將從中提取資料并用于稍后更新它讀取為未定義。
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
這是我嘗試做的偽代碼概念 if (JSONData.stringify.unique == {SearchUID}){toonname = JSONData.stringify.name;}
據我了解,您無法真正追加,只需使用新資料重新重寫檔案,我想我可以自己解決這個問題,一旦我想出如何將檔案真實地轉換為陣列,我可以像上面那樣搜索
uj5u.com熱心網友回復:
要讀取 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 函式,但這當然取決于您。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/394299.html
