使用字符串搜索

时间:2017-08-02 17:05:34

标签: javascript json

我有一个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' ){}

1 个答案:

答案 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;  
}