com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token
16,369
You need to enable ACCEPT_SINGLE_VALUE_AS_ARRAY feature. Probably in POJO
you have a List
but when there is only one element in a List
JSON
payload is generated without array brackets.
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.util.List;
public class JsonApp {
public static void main(String[] args) throws Exception {
File jsonFile = new File("./src/main/resources/test.json");
ObjectMapper mapper = new ObjectMapper();
mapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
Orgnization root = mapper.readValue(jsonFile, Orgnization.class);
System.out.println(root);
}
}
Related videos on Youtube
Author by
PAA
I am Sr. Software Engineer having 11 years of experience in Microservices, Spring Boot, Spring Batch, Spring Rest, Spring Security, Java 8, WSO2 API Manager. I also have experience in Postgres, Oracle, MongoDB and Redis. I've have extensive experience in writing Mockito based Test cases, Junit and TestNG.
Updated on June 04, 2022Comments
-
PAA almost 2 years
How to read below
JSON
usingJackson
ObjectMapper
? I have developed code but getting below error.com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token at [Source: (File); line: 7, column: 19] (through reference chain: com.example.demo.resources.Orgnization["secondaryIds"])
JSON
{ "id": "100000", "name": "ABC", "keyAccount": false, "phone": "1111111", "phoneExtn": "11", "secondaryIds": { "ROP": [ "700010015", "454546767", "747485968", "343434343" ], "AHID": [ "01122006", "03112001" ] } }
-
Mark Rotteveel over 4 yearsPlease show a minimal reproducible example with your Java entity and deserialization call to
ObjectMapper
.
-