【发布时间】:2017-07-10 15:41:45
【问题描述】:
我正在使用 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 }) -
有效!谢谢!
-
你能发布你的答案以便我接受吗?
-
好的!我会将其添加为正确答案,以便您解决此问题。
-
不确定为什么要以该格式开头,因为您无法真正引用其中的方法/属性。
标签: javascript .net jint