需要使用变量更改JSON属性

时间:2017-06-14 00:12:39

标签: javascript json

c.key = "test";
a = {};
a.body = {};
a.body.interval={}; 
a.body.interval = c.key;

b = {};
b.body = {};
b.body.interval={}; 
b.body.interval = c.key;  

c["key"]="sample";

return JSON.stringify(a);

我想更改javascript中提到的变量所引用的所有值。

目前,此印刷品

{"body":{"interval":"test"}}

我想更改c.key引用的属性。 我无法更改JSON的各个属性,因为它们没有修复。

如何在javascript中更改单个变量引用的所有属性?

1 个答案:

答案 0 :(得分:2)

不确定这是否正是您想要的,但使用函数而不是变量可以解决您的问题。 (因为你可以将替换函数传递给stringify。

看看以下代码:

c = {};
c.key = "test"

a = {};
a.body = {};
a.body.interval = function(){return c.key};

c["key"]="sample";

JSON.stringify(a, function (key, value) {
        if (key == 'interval') {
            return value();
        } else {
            return value;
        }
    });



c = {};
c.key = "test"

a = {};
a.body = {};
a.body.interval = function(){return c.key};

c["key"]="sample";

out = JSON.stringify(a, function (key, value) {
        if (key == 'interval') {
            return value();
        } else {
            return value;
        }
    });
    
console.log(out);