By default some simple conversions are provided by the MappingProvider. This allows to specify the return type you want and the MappingProvider will
try to perform the mapping. If a book, in the sample json above, had a long value 'published' you could perform object mapping between `Long` and `Date`
as shown below.
```java
Date date = JsonPath.parse(json).read("$.store.book[0].published", date.class)
```
If you use the `JacksonJsonProvider` you can even map your JsonPath output directly into POJO's.
```java
Book book = JsonPath.parse(json).read("$.store.book[0]", Book.class)
```
Predicates
----------
There are three different ways to create filter predicates in JsonPath.
###Inline predicates
These are predicates baked right into to your path.
In the current implementation you can use `&&` to combine multiple predicates `[?(@.price < 10 && @.category == 'fiction')]`. OR operations are not supported yet.
###The Filter API
Predicates can be built using the Filter API as shown below:
Note the placeholder '?' for the filter in the path. When multiple filters are provided they are applied in order where the number of placeholders must match
the number of provided filters. You can specify multiple predicate placeholders in one filter operation `[?, ?]`, both predicates must match.