我有像
这样的动态JSON对象var obj = {
"name":{
"fname" : "David",
"lname" : "Seb"
},
"place" : "XXX",
"country":{
"name" : "YYY",
"info":{
"key":"ZZZ"
}
}
}
我想在每个值中添加一些类似“new”的文本。
结果:
var obj = {
"name":{
"fname" : "Davidnew",
"lname" : "Sebnew"
},
"place" : "XXXnew",
"country":{
"name" : "YYYnew",
"info":{
"key":"ZZZnew"
}
}
}
任何人都可以告诉我们如何实现这一目标。
答案 0 :(得分:0)
;(function appendNew(obj){
for (var i in obj) {
if (typeof obj[i] === 'string') {
obj[i] += 'new';
} else if (typeof obj[i] === 'object') {
obj[i] = appendNew(obj[i]);
}
}
return obj;
})(obj);
此函数将递归循环遍历该对象,将“new”附加到它找到的任何字符串。
警告:它不会克隆对象,原始对象将被修改(我认为)。
答案 1 :(得分:0)
function traverse(json, ref, k) {
if(typeof json == "object") {
$.each(json, function(k, v) {
traverse(v, json, k);
});
} else if(typeof json == "string") {
ref[k] = json + "new";
}
}
traverse(obj, null, null);