使用jint评估javascript对象

使用jint评估javascript对象,javascript,.net,jint,Javascript,.net,Jint,我使用jint解析javascript代码,以下js代码可以工作: 1 [1] {} 但这一次失败了: {a:1} 出现此错误时: int.Parser.ParserException:第1行:意外标记: 位于Jint.Parser.JavaScriptParser.ThrowError(令牌、字符串messageFormat、对象[]参数) 位于Jint.Parser.JavaScriptParser.ThrowUnexpected(令牌) 在Jint.Parser.JavaScriptP

我使用jint解析javascript代码,以下js代码可以工作:

  • 1
  • [1]
  • {}
但这一次失败了:

{a:1}

出现此错误时:

int.Parser.ParserException:第1行:意外标记:
位于Jint.Parser.JavaScriptParser.ThrowError(令牌、字符串messageFormat、对象[]参数)
位于Jint.Parser.JavaScriptParser.ThrowUnexpected(令牌)
在Jint.Parser.JavaScriptParser.ConsumeSeminicolon()处
在Jint.Parser.JavaScriptParser.ParseStatement()中
在Jint.Parser.JavaScriptParser.ParseStatement()中
在Jint.Parser.JavaScriptParser.ParseSourceElement()中
在Jint.Parser.JavaScriptParser.ParseStatementList()中
在Jint.Parser.JavaScriptParser.ParseBlock()中
在Jint.Parser.JavaScriptParser.ParseStatement()中
在Jint.Parser.JavaScriptParser.ParseSourceElement()中
在Jint.Parser.JavaScriptParser.ParseSourceElements()中
在Jint.Parser.JavaScriptParser.ParseProgram()中
在Jint.Parser.JavaScriptParser.Parse(字符串代码,ParserOptions)
在Jint.Engine.Execute(字符串源代码)

我不想反序列化JSON文件,我想执行一个javascript对象,我希望有如下内容:

{
  id: 'one',
  code: function() { console.log('hello'); }
}
我注意到如果我这样做:

var x = {a: 1}
x
然后它就可以工作了,但我需要它在我的场景中是一个javascript对象


有没有办法做到这一点?

{a:1}
被解释为块语句而不是对象文本。解决方案是用括号括起来:

({ a: 1 })

{a:1}
被解释为块语句而不是对象文本。解决方案是用括号括起来:

({ a: 1 })

它可能将其解释为块而不是对象文字。试着用括号把它括起来,例如,
({a:1})
它可以工作!非常感谢。你能把你的答案贴出来让我接受吗?好的!我将添加它作为正确的答案,以便您可以解决此问题。由于您无法真正引用其中的方法/属性,因此不确定为什么要使用该格式。它可能将其解释为块而不是对象文字。试着用括号把它括起来,例如,
({a:1})
它可以工作!非常感谢。你能把你的答案贴出来让我接受吗?好的!我将添加它作为正确的答案,以便您可以解决此问题。由于您无法真正引用其中的方法/属性,因此不确定为什么要以该格式开头。