在camel路由中需要通过rest客户端从传入的json数据中读取值。使用JsonPath解析并从中获取值。
用于获取json数据的表达式适用于一个值而不适用于另一个值。
从其他客户端传入的JSON数据:
[{"var1": 10,"var2": 20}]
在camel路由中使用的JSONPath表达式:
<setHeader headerName="data1">
<jsonpath suppressExceptions="true">$[0].var1</jsonpath>
</setHeader>
<log message="value1 : ${header.data1}" />
<setHeader headerName="data2">
<jsonpath suppressExceptions="true">$[0].var2</jsonpath>
</setHeader>
<log message="valu2 : ${header.data2}" />
可以在第一个记录器中看到记录的值,但是第二个记录器是'null'并且camel会抛出'NullPointerException'。
问题:
如果这是获取值的正确的json路径表达式,那么有人可以指导我。如果没有,请指导我找到解决方案。
使用可用于json路径的各种在线工具检查了表达式的工作和返回值。