我想使用jsonpath从头部内的JSON数组中提取一个值。
headers.barcodes:
[ { "barcodeValue" : "123456789" , "type" : "CODE128" , `"pageNumber" : 1}]
我发现的唯一方法是使用正文来提取值:
<setBody>
<simple>${headers.barcodes}</simple>
</setBody>
<setHeader headerName="barcodeValueOnly">
<jsonpath>$[0].barcodeValue</jsonpath>
</setHeader>
我试图像这样传递标题:
<jsonpath>${headers.barcodes}[0].barcodeValue</jsonpath>
但我得到的只是
com.jayway.jsonpath.InvalidPathException:无法从位置2开始解析令牌。预计?,&#39;,0-9,*
有没有办法在不使用正文的情况下将标题值直接传递给jsonpath?
答案 0 :(得分:2)
这在jsonpath上是不可能的,但是我们在xpath等其他语言上有这样的功能,你可以配置headerName
选项来告诉它从该头而不是消息体中获取输入
所以我在下一个版本中记录了添加此类功能的票证:https://issues.apache.org/jira/browse/CAMEL-11796