Прежде всего, это не объект JSON
, это простой объект JavaScript.
Затем вы можете использовать рекурсию для циклического прохождения всех уровней object
и проверить, содержит ли повторное значение property
значение object
, поэтому обработайте его снова, если оно равно email
, поэтому измените его.
function process(obj) {
for (var key in obj) {
if (typeof obj[key] == 'object') {
process(obj[key]);
} else if (key == "email") {
obj[key] = "new email value";
}
}
}
Примечание:
Я использовал строку "new email value"
в качестве нового значения для email
, но вы можете изменить ее в соответствии с желаемым value
.
Демонстрация:
var data = {
email: "aaa@bbb.com",
person: {
email: "dfd@ffds.com"
},
mother: {
name: "AAA",
email: "fdsfd@fdsfsd.com",
friend: {
email: "fdsd@gfsgf.com"
}
}
}
function process(obj) {
for (var key in obj) {
if (typeof obj[key] == 'object') {
process(obj[key]);
} else if (key == "email") {
obj[key] = "new email value";
}
}
}
process(data);
console.log(data);