// spring-boot-auto-configure options: START
:page-partial:
:doctitle: Camel Spring Boot Starter for jsonpath

== Spring Boot Auto-Configuration

When using jsonpath with Spring Boot make sure to use the following Maven dependency to have support for auto configuration:

[source,xml]
----
<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-jsonpath-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>
----


The component supports 8 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *camel.language.jsonpath.allow-easy-predicate* | Whether to allow using the easy predicate parser to pre-parse predicates. | true | Boolean
| *camel.language.jsonpath.allow-simple* | Whether to allow in inlined simple exceptions in the JsonPath expression | true | Boolean
| *camel.language.jsonpath.enabled* | Whether to enable auto configuration of the jsonpath language. This is enabled by default. |  | Boolean
| *camel.language.jsonpath.header-name* | Name of header to use as input, instead of the message body |  | String
| *camel.language.jsonpath.option* | To configure additional options on json path. Multiple values can be separated by comma. |  | String
| *camel.language.jsonpath.suppress-exceptions* | Whether to suppress exceptions such as PathNotFoundException. | false | Boolean
| *camel.language.jsonpath.trim* | Whether to trim the value to remove leading and trailing whitespaces and line breaks | true | Boolean
| *camel.language.jsonpath.write-as-string* | Whether to write the output of each row/element as a JSON String value instead of a Map/POJO value. | false | Boolean
|===
// spring-boot-auto-configure options: END
