我的Camel路由正在调用REST服务,该服务返回一个JSON字符串。问题是JSON不是一个对象,而是一个对象数组,即:
[
{ object_1 },
{ object_2 }
]
首先,我想弄清楚这个数组是否为空,作为choice-when语句中的表达式:
.choice()
.when( <array-is-empty-expression> )
...
.otherwise()
...
作为一个解决方案,我使用了表达式**.when(“${body} == '[]'”),它工作得很好,但是它不能给予我灵活性来找出 * 数组中有多少 * 元素(好吧,只是有0个或多于0个)。所以我真的喜欢.when(“${body expression} == 0”)。
第二,我希望有一个表达式,它可以分配一个属性,例如,JSON数组中的第二个对象,来设置一个头属性。例如,.header(“To”,expression)**。
有谁能帮我解释一下这些表达方式吗?
1条答案
按热度按时间btxsgosb1#
最好的方法是解组你的Json字符串以得到一个对象列表。然后你可以调用 size() 方法来得到列表中的元素数目。最后,你可以使用 [] 操作符访问列表中的任何元素:
使用 [] 作为输入,您可以看到以下日志输出:
使用 [{a=1,B=2},{a=3,b=4}] 作为输入,您可以看到以下日志输出: