如何检查 Camel 路由中是否存在带有 jsonpath 的密钥?
How to check that a key exists with jsonpath in a Camel route?
需要检查下面的 JSON 对象是否存在键。如果键存在且值为空,那么我想将 TH
设置为默认语言。
如何在骆驼路线中做到这一点?
{ "languagePreference":"" }
//set default value of language preference as TH
.setHeader("languagePreference").jsonpath("$.languagePreference")
您可以使用 suppressExceptions
标志
.setHeader("languagePreference").jsonpath("$.languagePreference", true)
如果密钥丢失,这不会抛出异常。之后,你可以在header中检查一个值,如果header为空,你可以赋值给想要的值(检查header值的方法有很多种)。
//.choice().when(PredicateBuilder.or(header("languagePreference").isNull() , header("languagePreference").isEqualTo("")))
.choice().when().simple("${header.languagePreference} == null || ${header.languagePreference} == ''")
.setHeader("languagePreference").constant("TH")
.end()
需要检查下面的 JSON 对象是否存在键。如果键存在且值为空,那么我想将 TH
设置为默认语言。
如何在骆驼路线中做到这一点?
{ "languagePreference":"" }
//set default value of language preference as TH
.setHeader("languagePreference").jsonpath("$.languagePreference")
您可以使用 suppressExceptions
标志
.setHeader("languagePreference").jsonpath("$.languagePreference", true)
如果密钥丢失,这不会抛出异常。之后,你可以在header中检查一个值,如果header为空,你可以赋值给想要的值(检查header值的方法有很多种)。
//.choice().when(PredicateBuilder.or(header("languagePreference").isNull() , header("languagePreference").isEqualTo("")))
.choice().when().simple("${header.languagePreference} == null || ${header.languagePreference} == ''")
.setHeader("languagePreference").constant("TH")
.end()