Я хочу заменить «placeholder» на {«John»: «Dough»} динамически с вызовом функции.Динамическое изменение свойства JSON в Javascript
Это работает:
a = {foo:{bar:{baz:"placeholder"}}};
a.foo.bar.baz = {"John" : "Dough"};
console.log(JSON.stringify(a));
> {"foo":{"bar":{"baz":{"John":"Dough"}}}}
Но это не делает:
var test = function(key, value) {
a = {foo:{bar:{baz:"placeholder"}}};
a.foo.bar.baz = { key: value};
console.log(JSON.stringify(a));
};
test("John", "Dough");
> {"foo":{"bar":{"baz":{"key":"Dough"}}}}
Это также не работает:
var test = function(key, value) {
a = {foo:{bar:{baz:"placeholder"}}};
a.foo.bar.baz[key] = value;
console.log(JSON.stringify(a));
};
test("John", "Dough");
> {"foo":{"bar":{"baz":"placeholder"}}}
Я проверяю на Node.js. Вероятно, в браузере не изменится.
нет такого понятия «объект JSON» в Java Script. есть json, который является серифицированной формой объекта и объектом. период. говоря json object, это как сказать «торт-рецепт торта», либо это рецепт торта, либо это торт. между ними нет. –
@ArunPJohny - на этот вопрос не отвечает тот, который вы называете дубликатом. Этот вопрос спрашивает, как заменить свойство. Если вы действительно посмотрите на предоставленный код, вы увидите, что OP уже знает, как динамически ссылаться на свойства с использованием переменных в качестве имен ключей. Он это делает. Остановитесь, прежде чем вы будете отмечены как дубликаты в будущем. – Archer
Некоторые SO гуру действительно очень нетерпимы к вопросам. Полагаю, я ясно выразил свою проблему. Во всяком случае, это отличный сайт. – rsa