我有一个单独的JSON数组文件,我有我的数据,但根据用户输入我需要在我的JSON中更改三个值然后执行我的http请求。我坚持将我从用户那里获得的值分配给我预先定义的JSON数组文件。
example.json
{
"packageName": "example",
"packageType": "example",
"navigationType": "example",
"description":"",
"consoleAccessLimit": [
{
"accessType": "example4",
"accessLimit": 2
},
{
"accessType": "example3",
"accessLimit": 1
},
{
"accessType": "example2",
"accessLimit": 1
}
]}
我需要更改example4的accesslimit,示例3的accesslimit和示例1的accesslimit
我的代码
function askme() {
askDetails("Enter example1 Count:", /.+/, function(scount) {
askDetails("Enter example 3 Count:", /.+/, function (acount) {
askDetails("Enter example 2 Count:", /.+/,function (wcount) {
askDetails("Enter example 4 count:",/.+/,function (price) {
var youexample = (require('./example/example.json'));
// how do i assign the values to my example.json
})
})
})
});
}
请帮助大家谢谢
答案 0 :(得分:0)
var fs = require('fs');
fs.readFile('data.json',function(err,content){
if(err) throw err;
var parseJson = JSON.parse(content);
//modify json content here
.writeFile('data.json',JSON.stringify(parseJson),function(err){
if(err) throw err;
})
})
您必须读取和写入文件才能修改.json文件
答案 1 :(得分:0)
您的代码结构不是很好。您要求用户输入将更改JSON的数组值。您应该以允许问题和JSON数组更灵活的方式重构您的代码。例如,今天可能在数组中有四个值,但在一个月内可能需要更改为六个值。
for (var x=0; x < youexample.consoleAccessLimit.length; x++) {
askDetails("Enter example"+x+" Count:", /.+/, function(count) {
youexample.consoleAccessLimit[x].accessLimit = count;
}
}
console.log("youexample result: ", youexample)
我在这里做的是创建一个for
循环,该循环遍历consoleAccessLimit
JSON中youexample
数组的长度。
每次循环时,它都会运行askDetails
函数,该函数获取用户输入并将结果传递给值为count
的函数。然后,我们将count
的值分配给与youexample.consoleAccessLimit
对应的特定x
索引。
由于数组中有三个项目,循环将运行三次,并将用户输入的结果分配给每个项目。
因此,如果用户为第一个输入5,然后输入9,然后输入2,那么JSON的结果最终将如下所示:
{
"packageName": "example",
"packageType": "example",
"navigationType": "example",
"description":"",
"consoleAccessLimit": [
{
"accessType": "example4",
"accessLimit": 5
},
{
"accessType": "example3",
"accessLimit": 9
},
{
"accessType": "example2",
"accessLimit": 2
}
]}
打开您的Web开发人员控制台,查看console.log
输出结果。