Я пытаюсь изменить значение json с машинописью с помощью рекурсивной функции.Я знаю, как показать все ключи или значения, но я не знаю точно, как изменить значение.
У меня есть этот json и этот код:
var json = {
"a" : "hello",
"b" : "bye",
"c" : {
"d" : "test1",
"e" : "test2"
},
"f" : {
"g" : {
"h" : "test3",
"i" : "test4"
}
}
};
changeInJson(id: string, value: string, level: number, json: object): void {
level = level || 0;
for (var property in json) {
if (typeof json[property] === 'object') {
this.changeInJson(id, value, ++level, json[property]);
} else {
console.log(property);
if(property === id) {
//change value in json
console.log("Yes");
}
}
}
};
changeInJson("i", "changed", 0, json);
console.log(json);
В этом примереЯ знаю ключи json, но на самом деле мне нужно как-то сохранить весь путь, чтобы добраться до ключа «i», и это то, что я не знаю, как это сделать.
Спасибо