首页 > 解决方案 > 在 NodeJS 中使用 JSON.stringify 时出现问题

问题描述

我最近尝试使用 fs 来修改特定目录中的 JSON 文件。这很好用,我只是
let randomJsonObject = JSON.parse(fs.readFileSync("./file.json", "utf8")); //Should read [] at first because there's nothing written inside this file except [] 在尝试修改它时出现问题。我想检查一个特定的数组(这里称为“某物”)是否已经存在,如果不存在,它应该在其中放入一些值。所以我尝试使用

if(!randomJsonObject["something"]) {
        randomJsonObject["something"] = [{"name": "asd", "phone": 0}, {"name": "asd222", "phone":234}];
}

问题是,当我记录 JSON 对象时,它工作正常,但如果我尝试记录 JSON.stringify(randomJsonObject),它只会记录 [],这是我的 randonJsonObject 一开始它什么都没有,它只是被解析...

console.log(randomJsonObject); //Logs correct JSON Array, with 2 Objects inside it
console.log(JSON.stringify(randomJsonObject)); //Logs [] and nothing else

有谁知道为什么会这样?显然,如果我尝试将其保存到我的文件中,那么它只会再次保存 [] ...缓存有问题吗?还有什么?帮助表示赞赏:) 另外我对使用 JSON 很陌生,尤其是在 JavaScript 中,所以也许它真的很容易,我只是看不到它^^

fs.writeFile("./file.json", JSON.stringify(randomJsonObject), (err) => {
        if (err) console.error(err)
}); //Only saves []

标签: javascriptnode.jsjsonfs

解决方案


它是一个数组而不是一个对象。如果 randomJsonObject 是一个对象,那么这将起作用。

尝试以下,randomJsonObect = {}在开始时设置并再次进行实验。


推荐阅读