如何编写一个脚本来编辑JSON文件?

5
例如,我有一个名为people.json的文件。它的内容如下:
[
  {"name": "Paul",
  "age": 29,
},
  {"name": "Kathy",
  "age": 101,
},
  {"name": "Paula",
  "age": 12,
},
  {"name": "Bruce",
  "age": 56,
}
]

所以,这里我想为每个人添加一个图片链接,例如:
[{"name":"Paul",
 "age" : 29,
 "pic" : "paul.png"
},
  {"name": "Kathy",
  "age": 101,
 "pic" : "kathy.png"
},
  {"name": "Paula",
  "age": 12,
 "pic" : "paula.png"
},
  {"name": "Bruce",
  "age": 56,
 "pic" : "bruce.png"
}
]

我该如何编写一个脚本,在每个人员中添加一个 pic 键,并将 person.name.lowercase + ".png" 作为值添加进去?

在此过程结束时,people.json 将被编辑并保存到硬件而不是内存中。

非常感谢。


5
任何一种语言都可以写出这段代码。请选择您偏好的语言。 - Denys Séguret
1
对于正确的JSON,您缺少一些逗号。 - Denys Séguret
我对这个非常陌生。你能给我一些提示吗? - dazer
2
@dystroy,它们不是丢失了,只是位置错了 :) - John La Rooy
@user2724559,如果您在原始问题中提供了正确的JSON,您早就有答案了。 - John La Rooy
1个回答

9

这是一个完整的 JavaScript 程序(使用 node.js),可完成您想要的操作:

fs = require('fs');
var m = JSON.parse(fs.readFileSync('people.json').toString());
m.forEach(function(p){
    p.pic = p.name.toLowerCase()+".png";
});
fs.writeFile('people.json', JSON.stringify(m));

作为额外奖励(也适用于其他语言的回答者),这里是一个修复过的输入JSON:

[
    {"name":"Paul","age":29},
    {"name":"Kathy","age":101},
    {"name":"Paula","age":12},
    {"name":"Bruce","age":56}
]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接