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

daz*_*zer 5 javascript ruby python json

例如,我有一个名为的文件people.json.其内容是:

[
  {"name": "Paul",
  "age": 29,
},
  {"name": "Kathy",
  "age": 101,
},
  {"name": "Paula",
  "age": 12,
},
  {"name": "Bruce",
  "age": 56,
}
]
Run Code Online (Sandbox Code Playgroud)

所以我在这里想为每个人添加一个图片链接

[{"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"
}
]
Run Code Online (Sandbox Code Playgroud)

如何编写脚本以pic向每个人添加密钥并添加person.name.lowercase +".png"作为值?

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

非常感谢你.

Den*_*ret 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));
Run Code Online (Sandbox Code Playgroud)

作为奖励(包括其他语言的其他回答者),这里有一个固定的输入JSON:

[
    {"name":"Paul","age":29},
    {"name":"Kathy","age":101},
    {"name":"Paula","age":12},
    {"name":"Bruce","age":56}
]
Run Code Online (Sandbox Code Playgroud)