Javascript 如何在json范围内进行评估?

Javascript 如何在json范围内进行评估?,javascript,Javascript,例如,我有一个json格式的{a:1,b:10,c:43} 我希望执行eval(“(a+b-5)*c”),但将其应用于json,而不是json和公式所在的位置 尝试此操作,试图利用作用域,但找不到a var z = { a:1, b:10, c:43, eval:eval }; console.log( z.eval( "a+b" ) ); 看看这个: function expression (expr) { return new Function('obj', 'with (obj)

例如,我有一个
json
格式的
{a:1,b:10,c:43}

我希望执行
eval(“(a+b-5)*c”)
,但将其应用于
json
,而不是
json
和公式所在的位置

尝试此操作,试图利用作用域,但找不到
a

var z = { a:1, b:10, c:43, eval:eval };
console.log( z.eval( "a+b" ) );
看看这个:

function expression (expr) {
    return new Function('obj', 'with (obj) return ' + expr);
}

console.log(expression('(a+b-5)*c')({ a:1, b:10, c:43 }));
看看这个:

function expression (expr) {
    return new Function('obj', 'with (obj) return ' + expr);
}

console.log(expression('(a+b-5)*c')({ a:1, b:10, c:43 }));

不要使用eval 使用JSON.parse


不要使用eval 使用JSON.parse


我想你想要的是:

var yourJSon = '{ "a":1, "b":10, "c":43 }'; 
//Your original JSon String (attention to the standard double quotes)

yourJSon = JSON.parse(yourJSon); 
//this will render your JSon string into a "real" object

var answer = eval("(yourJSon.a + yourJSon.b - 5) * yourJSon.c"); 
//And now you can do the eval, using the object's variable to define the scope of that object.

我想你想要的是:

var yourJSon = '{ "a":1, "b":10, "c":43 }'; 
//Your original JSon String (attention to the standard double quotes)

yourJSon = JSON.parse(yourJSon); 
//this will render your JSon string into a "real" object

var answer = eval("(yourJSon.a + yourJSon.b - 5) * yourJSon.c"); 
//And now you can do the eval, using the object's variable to define the scope of that object.

您可以将
关键字一起使用,但请不要使用。不建议将
eval一起使用

var z = { a:1, b:10, c:43 };
with(z) {
    console.log(eval('a+b'));
}

这里有一些。

您可以将
关键字一起使用,但请不要使用。不建议将
eval一起使用

var z = { a:1, b:10, c:43 };
with(z) {
    console.log(eval('a+b'));
}

这是一些。

我不明白你的意思。。。但是如果你的意思是我认为你要做的,那么除了解包JSON,做数组,然后重新打包之外,没有别的办法了。你在说什么数组?这个:
{a:1,b:10,c:43}
数组,对象,在这个例子中相同的区别。。。它看起来像
result=(myJSON.a+myJSON.b-5)*myJSON.c)
如何“解包”它?那么,JSON从何而来?你能出示一些代码吗?我不明白你的意思。。。但是如果你的意思是我认为你要做的,那么除了解包JSON,做数组,然后重新打包之外,没有别的办法了。你在说什么数组?这个:
{a:1,b:10,c:43}
数组,对象,在这个例子中相同的区别。。。它看起来像
result=(myJSON.a+myJSON.b-5)*myJSON.c)
如何“解包”它?那么,JSON从何而来?你能展示一些代码吗?问题是关于解析和计算一个表达式,而不是解析JS。问题是关于解析和计算一个表达式,而不是解析json。如果不使用
,我如何在json中进行范围分析?如果你愿意,可以使用
,不建议使用整个方法。如果我需要做这样的事情,我会回去重新思考我想要实现的目标,以及是否有更好的方法来实现它。虽然我并不是说因为缺乏时间或兴趣,我自己从来没有做过乱七八糟的事情那么,如果不使用
,我如何在json中确定范围呢?如果您愿意,可以使用
,不建议使用整个方法。如果我需要做这样的事情,我会回去重新思考我想要实现的目标,以及是否有更好的方法来实现它。虽然我并不是说因为缺乏时间或兴趣,我自己从来没有做过乱七八糟的事情