我正在Aws::Client::ClientConfiguration config;
config.region = "us-gov-west-1";
config.endpointOverride = "s3-us-gov-west-1.amazonaws.com";
Aws::S3::S3Client s3_client(config);
中使用JSONata
。
java
步骤:
在类路径中包含JSONata version - 1.4.0
Java Version - 1.8
。
调用:
Jsonata.js
参考链接: How can I use JSONata in Java?
当我尝试使用此功能时,我会得到以下异常:
引起:jdk.nashorn.internal.runtime.ParserException: :1445:12预期(但发现功能评估(expr,输入, 环境){
在 jdk.nashorn.internal.parser.AbstractParser.error(AbstractParser.java:294) 在 jdk.nashorn.internal.parser.AbstractParser.error(AbstractParser.java:279) 在 jdk.nashorn.internal.parser.AbstractParser.expectDontAdvance(AbstractParser.java:350) 在 jdk.nashorn.internal.parser.AbstractParser.expect(AbstractParser.java:337) 在 jdk.nashorn.internal.parser.Parser.functionExpression(Parser.java:2654) 在jdk.nashorn.internal.parser.Parser.statement(Parser.java:875)at jdk.nashorn.internal.parser.Parser.sourceElements(Parser.java:773)at at jdk.nashorn.internal.parser.Parser.functionBody(Parser.java:2901)at at jdk.nashorn.internal.parser.Parser.functionExpression(Parser.java:2663) 在 jdk.nashorn.internal.parser.Parser.memberExpression(Parser.java:2506) 在 jdk.nashorn.internal.parser.Parser.leftHandSideExpression(Parser.java:2372) 在 jdk.nashorn.internal.parser.Parser.unaryExpression(Parser.java:3147) 在jdk.nashorn.internal.parser.Parser.expression(Parser.java:3282)at jdk.nashorn.internal.parser.Parser.primaryExpression(Parser.java:1992) 在 jdk.nashorn.internal.parser.Parser.memberExpression(Parser.java:2511) 在 jdk.nashorn.internal.parser.Parser.leftHandSideExpression(Parser.java:2372) 在 jdk.nashorn.internal.parser.Parser.unaryExpression(Parser.java:3147) 在 jdk.nashorn.internal.parser.Parser.assignmentExpression(Parser.java:3353) 在 jdk.nashorn.internal.parser.Parser.variableStatement(Parser.java:1088) 在jdk.nashorn.internal.parser.Parser.statement(Parser.java:884)at jdk.nashorn.internal.parser.Parser.sourceElements(Parser.java:773)at at jdk.nashorn.internal.parser.Parser.program(Parser.java:709)at at jdk.nashorn.internal.parser.Parser.parse(Parser.java:283)at at jdk.nashorn.internal.parser.Parser.parse(Parser.java:249)at at jdk.nashorn.internal.runtime.Context.compile(Context.java:1284)at at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:1251) 在 jdk.nashorn.internal.runtime.Context.compileScript(Context.java:627) 在 jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:535) ... 6 moree
任何有关如何使用它的帮助都会很有用。
答案 0 :(得分:1)
从v1.2开始,jsonata.js使用ES6功能,因此您需要确保您使用的Nashorn版本支持此功能。或者,您可以使用Babel在JSONata构建中生成的jsonata-es5.js版本。您可以通过克隆GitHub repo并运行npm t
或从here下载来获得此功能。
答案 1 :(得分:0)
你需要提供带有三个参数的Evaluate函数,你只给出了表达式。根据链接,您还应提供ff
代码:
engine.put("input", new String(sample));
and
engine.put("resultjson", resultjson);
希望有所帮助
答案 2 :(得分:0)
我确认早期版本的JSONata在java version "1.8.0_152"
中使用nashorn引擎,使用Andrew提供的jsonata-es5.min.js链接或jsonata repostiory的jsonata.git/tags/v1.1.1/jsonata.js
链接。
答案 3 :(得分:0)
现在有了JSONata JavaScript代码的Java端口。请查看该问题的答案以获取详细信息:How can I use JSONata in Java?