Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 21. JSonPath
Overview
Copier lienLien copié sur presse-papiers!
				The JSonPath language provides a convenient syntax for extracting portions of a JSon message. The syntax of JSon is similar to XPath, but it is used to extract JSon objects from a JSon message, instead of acting on XML. The 
jsonpath DSL command can be used either as an expression or as a predicate (where an empty result gets interpreted as boolean false).
			Adding the JSonPath package
Copier lienLien copié sur presse-papiers!
				To use JSonPath in your Camel routes, you need to add a dependency on 
camel-jsonpath to your project, as follows:
			<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-jsonpath</artifactId>
  <version>${camel-version}</version>
</dependency>
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-jsonpath</artifactId>
  <version>${camel-version}</version>
</dependency>Java example
Copier lienLien copié sur presse-papiers!
				The following Java example shows how to use the 
jsonpath() DSL command to select items in a certain price range:
			
				If the JSonPath query returns an empty set, the result is interpreted as 
false. In this way, you can use a JSonPath query as a predicate.
			XML example
Copier lienLien copié sur presse-papiers!
				The following XML example shows how to use the 
jsonpath DSL element to define predicates in a route:
			Suppress Exceptions
Copier lienLien copié sur presse-papiers!
				JSonPath will throw an exception if the path configured by the 
jsonpath expression is not found. The exception can be ignored by setting the SuppressExceptions option to true. For example, in the code below, adding the true option as part of the jsonpath parameters:
			
				In XML DSL use the following syntax:
			
JSonPath injection
Copier lienLien copié sur presse-papiers!
				When using bean integration to invoke a bean method, you can use JSonPath to extract a value from the message and bind it to a method parameter. For example:
			
Integrating Jackson with Camel TypeConverters
Copier lienLien copié sur presse-papiers!
				The 
 
Copy to Clipboard
Copied!
 
 
Toggle word wrap
Toggle overflow
 
 
			
camel-jackson module allows to integrate Jackson as a Type Converter in the Camel Registry. You need to explicitly enable the camel-jackson by setting the CamelContext properties, as shown below: 
// enable Jackson json type converter
getContext().getProperties().put("CamelJacksonEnableTypeConverter", "true");
// allow Jackson json to convert to pojo types also (by default jackson only converts to String and other simple types)
getContext().getProperties().put("CamelJacksonTypeConverterToPojo", "true");
// enable Jackson json type converter
getContext().getProperties().put("CamelJacksonEnableTypeConverter", "true");
// allow Jackson json to convert to pojo types also (by default jackson only converts to String and other simple types)
getContext().getProperties().put("CamelJacksonTypeConverterToPojo", "true");
				The 
camel-jackson type converter integrates with JAXB. You can annotate POJO class with JAXB annotations that Jackson can leverage.
			Reference
Copier lienLien copié sur presse-papiers!
				For more details about JSonPath, see the JSonPath project page.