【发布时间】:2018-01-10 20:18:13
【问题描述】:
我已经搜索了很长时间,但找不到任何解决我的问题的方法... 我得到了一个像这样的随机嵌套 json 对象:
var obj = { a: 1, b: 2, c: { a: 1, b: 2, c: {a: 'hello', b: 'HowAreYou?'} } };
someValue = 'hello';
newValue = 'bye';
现在我要搜索“someValue”。如果 'obj' 包含此值,则会触发警报。这是我的例子:
function wannaChangeValue(obj) {
var itemKey;
if (obj instanceof Object) {
for (itemKey in obj) {
if (obj.hasOwnProperty(itemKey)) {
wannaChangeValue(obj[itemKey]);
}
}
} else {
alert(obj);
if (obj == someValue) {
alert('got it! now change...')
//change someValue to newValue
}
}
return obj
}
wannaChangeValue(obj)
这很好用,但我怎样才能将“someValue”更改为“newValue”并再次返回整个 json 文件? 我已经看到了很多如何处理这个问题的例子,但是我需要一个任何类型的嵌套 json 对象的解决方案,而不知道更改这个值的路径。也许这是一个完全错误的方法...... 提前致谢!
【问题讨论】:
-
Find and update in nested json object 的可能重复项。另一个可能有帮助的链接:stackoverflow.com/questions/15523514/…
标签: javascript jquery json recursion