使用jint的Eval javascript对象

时间:2017-07-10 15:41:45

标签: javascript .net 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对象。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

{ a: 1}被解释为块语句而不是对象文字。解决方案是将其包装在括号中:

({ a: 1 })