How to unmarshal json body to list of myclass in camel

Viewed 6847

I'd like to know how to unmarshal JSON string body to List of MyClass. The following sample doesn't work well.

from("direct:testroute")
.log("Received body ${body}")
.unmarshal().json(JsonLibrary.Jackson, List.class)

And I'd like to have something like (obviously doesn't work too)

from("direct:testroute")
.log("Received body ${body}")
.unmarshal().json(JsonLibrary.Jackson, List<MyClass>.class)
2 Answers

Create

JacksonDataFormat format = new ListJacksonDataFormat(MyClass.class);

and then:

//...
.unmarshal(format)
//...

source

Cannot you simply unmarshall as an array?

.unmarshal().json(JsonLibrary.Jackson, MyClass[].class)

I know it's not answer on how to unmarshall as a List but maybe someone can find it useful.

Related