用于访问javascript中json键的函数的参数,节点
我有一个包含10个元素的json,如下所示:用于访问javascript中json键的函数的参数,节点,javascript,node.js,json,parameter-passing,Javascript,Node.js,Json,Parameter Passing,我有一个包含10个元素的json,如下所示:{“id”:“2”,“name”:“Peter”,“number”:“A4584857”,“father”:“Gerart”,“color”:“green”} 我尝试修改json,这样我就有了一个函数,可以像这样读写: function updatefilelocal(id,texto) { const fs = require('fs'); fs.readFile('students.json', (err, data) => {
{“id”:“2”,“name”:“Peter”,“number”:“A4584857”,“father”:“Gerart”,“color”:“green”}
我尝试修改json,这样我就有了一个函数,可以像这样读写:
function updatefilelocal(id,texto) {
const fs = require('fs');
fs.readFile('students.json', (err, data) => {
if (err) throw err;
let json = JSON.parse(data);
console.log('This is after the read call')
const filename='students.json';
var file=json;
file.alumnos[id].color= texto
fs.writeFile(filename,JSON.stringify(file),function writeJson(err){
if (err)return console.log(err);
//console.log(JSON.stringify(file));
//console.log('writing to'+filename )
});
});
}
因此,有了这一行:file.alumnos[id].color=texto
和这个函数:updatefilelocal(2,'yellow')
我可以修改json中的键颜色,很好,它可以工作,但是当我想修改元素的键“name”时,我必须更改名称的颜色,比如:file.alumnos[id].name=texto
可以,但我要做的是在函数中添加第三个参数:
函数updatefilelocal(id,texto,第三个_参数){…}
更改“name”上的“color”。我将这样调用我的函数:updatefilelocal(id,texto,name)
如果我想更改元素的名称或
updatefilelocal(id,texto,color)
如果我想更改元素的颜色…我已经尝试了所有…我已经在file.alumnos[id]。{third parameter}=texto中放了括号,但是没有任何效果。。。
谢谢您的帮助。您可以将键作为第三个参数传入,然后使用
[key]
访问它。因此,代码中的一个示例是:
函数updatefilelocal(id、texto、key){
//你的代码
file.alumnos[id][key]=texto;
//代码的其余部分
}
您可以通过调用updatefilelocal(id,texto,'color')
或updatefilelocal(id,texto,'name')
来选择更改颜色或名称
下面是一个示例,以了解其工作原理:
设x={a:1,b:2};
函数changeKeyValue(对象、键、值){
obj[key]=val;
}
changeKeyValue(x,'a',3);//x={a:3,b:2}
changeKeyValue(x,'b',4);//x={a:3,b:4}
请在此处发布您的json结构。它是一个数组吗?或者一个有这些键/值的对象?{“alumnos”:[{“id”:“1”,“姓名”:“Peter”,“编号”:“A4584837”,“父亲”:“Gerart”,“颜色”:“green”},{“id”:“2”,“姓名”:“Maria”,“编号”:“A4584857”,“父亲”:“pett”,“颜色”:“yellow”},{“id”:“3”,“姓名”:“John”,“编号”:“A4584857”,“父亲”:“Juan”,“颜色”:“green”}等等。)}太棒了!我不知道这条路。非常感谢@JY Loh!!