使用 jint 评估 javascript 对象
Eval javascript object using jint
我正在使用 jint 来解析 javascript 代码,以下 js 代码有效:
1
[1]
{}
但是这个失败了:
{ a: 1}
出现此错误:
int.Parser.ParserException: Line 1: Unexpected token :
at Jint.Parser.JavaScriptParser.ThrowError(Token token, String messageFormat, Object[] arguments)
at Jint.Parser.JavaScriptParser.ThrowUnexpected(Token token)
at Jint.Parser.JavaScriptParser.ConsumeSemicolon()
at Jint.Parser.JavaScriptParser.ParseStatement()
at Jint.Parser.JavaScriptParser.ParseStatement()
at Jint.Parser.JavaScriptParser.ParseSourceElement()
at Jint.Parser.JavaScriptParser.ParseStatementList()
at Jint.Parser.JavaScriptParser.ParseBlock()
at Jint.Parser.JavaScriptParser.ParseStatement()
at Jint.Parser.JavaScriptParser.ParseSourceElement()
at Jint.Parser.JavaScriptParser.ParseSourceElements()
at Jint.Parser.JavaScriptParser.ParseProgram()
at Jint.Parser.JavaScriptParser.Parse(String code, ParserOptions options)
at Jint.Engine.Execute(String source)
我不想反序列化一个 JSON 文件,我想执行一个 javascript 对象,我想要这样的东西:
{
id: 'one',
code: function() { console.log('hello'); }
}
我注意到如果我这样做:
var x = {a: 1}
x
然后它就可以工作了,但我需要它成为我场景中的 javascript 对象。
有办法实现吗?
{ a: 1}
被解释为块语句而不是对象文字。解决方法是用括号括起来:
({ a: 1 })
我正在使用 jint 来解析 javascript 代码,以下 js 代码有效:
1
[1]
{}
但是这个失败了:
{ a: 1}
出现此错误:
int.Parser.ParserException: Line 1: Unexpected token : at Jint.Parser.JavaScriptParser.ThrowError(Token token, String messageFormat, Object[] arguments) at Jint.Parser.JavaScriptParser.ThrowUnexpected(Token token) at Jint.Parser.JavaScriptParser.ConsumeSemicolon() at Jint.Parser.JavaScriptParser.ParseStatement() at Jint.Parser.JavaScriptParser.ParseStatement() at Jint.Parser.JavaScriptParser.ParseSourceElement() at Jint.Parser.JavaScriptParser.ParseStatementList() at Jint.Parser.JavaScriptParser.ParseBlock() at Jint.Parser.JavaScriptParser.ParseStatement() at Jint.Parser.JavaScriptParser.ParseSourceElement() at Jint.Parser.JavaScriptParser.ParseSourceElements() at Jint.Parser.JavaScriptParser.ParseProgram() at Jint.Parser.JavaScriptParser.Parse(String code, ParserOptions options) at Jint.Engine.Execute(String source)
我不想反序列化一个 JSON 文件,我想执行一个 javascript 对象,我想要这样的东西:
{
id: 'one',
code: function() { console.log('hello'); }
}
我注意到如果我这样做:
var x = {a: 1}
x
然后它就可以工作了,但我需要它成为我场景中的 javascript 对象。
有办法实现吗?
{ a: 1}
被解释为块语句而不是对象文字。解决方法是用括号括起来:
({ a: 1 })