我们说我有一个像这样的JSON文件:
{
"public": {
"hello": "world",
"bye": "stranger"
}
}
然后我有一个表单,我可以在其中修改hello
和bye
的值。
var keys = [];
var values = [];
$.each($(event.currentTarget).find('input'), function(key, val) {
if($(this).attr('name') == 'skey') {
keys.push($(this).val());
}
if($(this).attr('name') == 'svalue') {
values.push($(this).val());
}
});
在方法中我操纵它
var rootDir = process.cwd().split('.meteor')[0];
rootDir = rootDir.replace(/\\/g, "/");
rootDir = rootDir + "private/";
var fileName = 'settings.default.json';
var filepath = rootDir + fileName;
for (var i = 0; i < obj.length; i++) {
for (var i = 0; i < values.length; i++) {
obj[i] = values[i];
}
}
fs.writeFileSync(filepath, JSON.stringify(obj), 'binary');
问题是它会打印出来
遗憾的是,["new value of hello", "new value of bye"]
和我不知道如何让它看起来像:
{
"public": {
"hello": "new value of hello",
"bye": "new value of bye"
}
}
如何做到这一点?
答案 0 :(得分:0)
假设obj
是您要修改的对象:
for (var i = 0; i < values.length; i++) {
obj[keys[i]] = values[i];
}