次のスニペットは、この例では
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
Invocable inv = (Invocable) engine;
FileReader jsonata = new FileReader("jsonata.js");
// load the JSONata processor
engine.eval(jsonata);
// read and JSON.parse the input data
byte[] sample = Files.readAllBytes(Paths.get("sample.json"));
engine.put("input", new String(sample));
Object inputjson = engine.eval("JSON.parse(input);");
// query the data
String expression = "$sum(Account.Order.Product.(Price * Quantity))"; // JSONata expression
Object expr = inv.invokeFunction("jsonata", expression);
Object resultjson = inv.invokeMethod(expr, "evaluate", inputjson);
// JSON.stringify the result
engine.put("resultjson", resultjson);
Object result = engine.eval("JSON.stringify(resultjson);");
System.out.println(result);
...あなたが埋め込まれたJavaScriptエンジンを使用してJavaからJSONataプロセッサを呼び出す方法を示し、jsonata.jsファイルがJSONata GitHubのレポからプルダウンされています
try.jsonata.orgからの「請求書」サンプルコードも含まれています。
エラーを処理するには追加コードが必要ですが、これは一般的な考え方を示しています。
https://github.com/jayway/JsonPath多分? –
JsonPathはうまく見えますが、現時点ではJsonataが必要でした。情報を感謝します。 –