javascript - 如何使用算术更改 JSON 文件的值?

标签 javascript json discord.js

抱歉,如果标题没有意义。

基本上,在我的 case.JSON 文件中,我有以下内容:

{
  "case": 0
}

我想要它,以便当代码运行时 case 的值增加 1 ,并且我可以将其分配在任何地方(discord.js 示例)丰富嵌入我可以将 caseNumber 放在页脚/字段/描述处。

我很难理解这一点,因此我们将不胜感激。

我想在每次重新启动代码时使用 Node FS 将其保存到我的 JSON 文件中 所以我希望它每次都更新。

这些是我的previous attempts :

// console.log('Starting...')
var fs = require('fs');
var cases = fs.readFileSync('case.json');
var caseUp = cases + 1;
var translateCases = JSON.parse(caseUp);

var data = JSON.stringify(translateCases)
fs.writeFile('case.json', data, finished);
function finished(err){
    console.log('All set.');
}

//////////////////////////////////////////////////// I've tried these 2 seperately ^ v


// console.log(translateCases);

console.log('Starting...')
var caseJSON = require('./case.json');
var caseTest = caseJSON.case[0 + 1]
caseTest = 0;
caseTest += 1;
// caseTestTranslate = JSON.parse(caseTest)

var actualNumber = JSON.stringify(caseTest)
fs.writeFile('case.json', actualNumber, finished)
function finished(err){
    console.log('All good.')
}

console.log(caseTest)

最佳答案

你就快到了!仔细查看订单:

var cases = fs.readFileSync('case.json'); // is a string
var caseUp = cases + 1; // string + number => string, which is not what you wanted
// for this case, you can parse the filecontents first with JSON.parse on the file contents

或者,您在下面的代码中做了什么

var caseJSON = require('./case.json'); // now caseJSON is directly parsed as an object
// so caseJSON.case contains the value you want to increment

使用这种方法,它看起来像这样:

var fs = require('fs');

console.log('Starting...')
var caseJSON = require('./case.json');
var caseJSONIncremented = { case: caseJSON.case + 1 }

var fileContent = JSON.stringify(caseJSONIncremented)
fs.writeFile('case.json', fileContent, finished)

function finished(err){
    console.log('All good.')
}

关于javascript - 如何使用算术更改 JSON 文件的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64489440/

相关文章:

json - Flutter:如果Firebase Storage中的JSON文件已更新,则如何使用Firebase Storage获取新数据

javascript - UI Angular Bootstrap typeahead 隐藏第一个选项

javascript - 具有多个 html/js/css 文件的 Webpack 元素

IOS如何将JSON字符串保存和加载到内存

javascript - 如何使用 for 循环将 Json 对象推送到 Json 数组?

discord - 如何让我的 Discord 机器人每 10 秒更改一次状态?

javascript - 如何将不和谐消息发送到另一个 channel ? (不和谐JS)

javascript - Mysql JavaScript错误: ECONNREFUSED

javascript - jQuery 验证下拉列表

javascript - 主脚本中的 Vuejs 模板限制