Aad*_*adi 2 json apache-camel jsonpath camel-http spring-camel
需要检查下面的 JSON 对象是否存在密钥。如果键存在且值为空,那么我想将其设置TH为默认语言。
在骆驼路线中如何做到这一点?
{ "languagePreference":"" }
Run Code Online (Sandbox Code Playgroud)
//set default value of language preference as TH
.setHeader("languagePreference").jsonpath("$.languagePreference")
Run Code Online (Sandbox Code Playgroud)
您可以使用该suppressExceptions标志
.setHeader("languagePreference").jsonpath("$.languagePreference", true)
Run Code Online (Sandbox Code Playgroud)
如果密钥丢失,这不会引发异常。之后,您可以检查标头中是否有值,然后如果标头为空,则可以分配所需的值(检查标头值的方法有很多种)。
//.choice().when(PredicateBuilder.or(header("languagePreference").isNull() , header("languagePreference").isEqualTo("")))
.choice().when().simple("${header.languagePreference} == null || ${header.languagePreference} == ''")
.setHeader("languagePreference").constant("TH")
.end()
Run Code Online (Sandbox Code Playgroud)