1

我想知道如何迭代一个基元数组,例如 int 数组,或者它是否是一个简单的字符串数组。

{
   "printers":[
      "HP-1234",
      "HP-Inkjet"
   ]
}

我想迭代数组并做这样的事情:

for( String obj:printers) {
    if(obj.contains("HP")) {
        //do something here
    }
}

我如何使用 JSONata 来做到这一点?

任何帮助将不胜感激!

4

1 回答 1

2

我想出了如下解决方案:

$map(printers, function($v, $i, $a) {
    $v~>$string()~>$contains("HP")?"HP Priter":$v
})

但由于我使用 java 通过 Nashorn 调用 jasonata.js,我无法获得正确的结果。

这就是我所做的:

        Object resultjson = inv.invokeMethod(expr, "evaluate", inputjson);        
        engine.put("resultjson", resultjson);
        Object result = engine.eval("JSON.stringify(resultjson);");
        System.out.println("Result:" + result);

得到的输出是 Result: [object Object] 寻找指针以获取 json 格式的结果。

注意:我使用的是 jsonata-es5.js,因为它与 Nashorn 兼容

于 2018-01-25T01:08:09.747 回答