有没有一种方法可以使用新功能设置JSON字段?

时间:2019-11-01 17:57:20

标签: javascript json tree

我有一个get方法来从JSON树中获取数据:

var tree = { user: [{ name: 'name1', email:'email1' }, {name: 'name2', email:'email2'}] };
getJSONNodeData(tree, 'user[1].name');
function getJSONNodeData(root, path) {
    try {
        return (new Function('root', 'return root.' + path + ';'))(root);
    } catch (e) {return "JSON Error";}
}

我想使用类似的简单方法设置JSON数据。我希望这可以工作:

function setJSONNodeData(root, path, newValue) {
    return (new Function('root', 'return root.' + path + '=' + newValue +';'))(root);
}

但这行不通吗?为什么以及将会怎样? Get有效,但Set无效。

1 个答案:

答案 0 :(得分:0)

检查下面定义的setJSONNodeData函数。

function setJSONNodeData(root, path, newValue) {
    try {
        (new Function('root', 'root.' + path + '="' + newValue + '";'))(root);
    } catch (e) {return "JSON Error";}
}

在您的代码中,两个返回都不需要,并且必须为newValue添加双引号。