簡體   English   中英

在 Javascript 中動態替換 JSON 屬性

[英]Replace a JSON property dynamically in Javascript

我想用函數調用動態地用 {"John": "Dough"} 替換 "placeholder"。

這有效:

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 上進行測試。 可能不會在瀏覽器中改變。

改變你的功能如下

var test = function(key, value) {
    a = {foo:{bar:{baz:"placeholder"}}};
    a.foo.bar.baz = {};   //creating a new object as `baz` value then assign
    a.foo.bar.baz[key] = value;
    console.log(JSON.stringify(a));
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM