我有一个JSON对象,需要通过使用字符串'locator'搜索所需节点来更新此对象,然后修改其值
e.g。
var jsonObj = {
"School":{
"Name":"ABC School",
"City":"Chicago",
"Zip":"53896"
},
"Students":[
{"Name":"Student1",
"Age": "12",
"Gender":"Male"
},
{"Name":"Student2",
"Age": "10",
"Gender":"Female"
},
{"Name":"Student3",
"Age": "15",
"Gender":"Female"
}
]
}
要执行的行动 -
创建一个函数
使用定位器字符串'School.Name'
搜索对象,并将值更新为'ZYZ School'
或
使用定位器字符串'School.Students.1.Age'
搜索对象,并将值更新为'18'
function updateJSON(jsonObj, 'School.Name', 'ZYZ School' ){}
答案 0 :(得分:1)
这应该有效
function updateJSON(jsonObj, locator, value) {
var path = locator.split('.');
if (!path.length) return;
for (var i = 0; i < path.length - 1; ++i) {
jsonObj = jsonObj[path[i]];
}
jsonObj[path[path.length - 1]] = value;
}