Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
The problem is the JSON - this cannot, by default, be deserialized into a Collection
because it's not actually a JSON Array - that would look like this:
[
{
"name": "Test order1",
"detail": "ahk ks"
},
{
"name": "Test order2",
"detail": "Fisteku"
}
]
Since you're not controlling the exact process of deserialization (RestEasy does) - a first option would be to simply inject the JSON as a String
and then take control of the deserialization process:
Collection<COrder> readValues = new ObjectMapper().readValue(
jsonAsString, new TypeReference<Collection<COrder>>() { }
);
You would loose a bit of the convenience of not having to do that yourself, but you would easily sort out the problem.
Another option - if you cannot change the JSON - would be to construct a wrapper to fit the structure of your JSON input - and use that instead of Collection<COrder>
.
Hope this helps.
Instead of the JSON document, you can update the ObjectMapper object like below :
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);