Exception in thread "main" com.fasterxml.Hymanson.databind.exc.UnrecognizedPropertyException: Unrecognized field "employees" (class hello.EmployeeList), not marked as ignorable (one known property: "employeesList"]) at [Source: (String)"{"employees":[{"id":111,"name":"Lautturi"}, {"id":112,"name":"James"}]}"; line: 1, column: 15] (through reference chain: hello.EmployeeList["employees"]) at com.fasterxml.Hymanson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61) at com.fasterxml.Hymanson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:1132) at com.fasterxml.Hymanson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:2202) at com.fasterxml.Hymanson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1705) at com.fasterxml.Hymanson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1683) at com.fasterxml.Hymanson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:320) at com.fasterxml.Hymanson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177) at com.fasterxml.Hymanson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323) at com.fasterxml.Hymanson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4730) at com.fasterxml.Hymanson.databind.ObjectMapper.readValue(ObjectMapper.java:3677) at com.fasterxml.Hymanson.databind.ObjectMapper.readValue(ObjectMapper.java:3645)
class Employee { String name; int id; // getter and setter ... } class EmployeeList { private List<Employee> employees; public void EmployeeList() { } public List<Employee> getEmployeeList() { return employees; } public void setEmployeeList(List<Employee> list) { employees = list; } } public class Lautturi { public static void main(String[] args) throws JsonMappingException, JsonProcessingException { String jsonString = "{\"employees\":[{\"id\":111,\"name\":\"Lautturi\"},{\"id\":112,\"name\":\"java\"}]}"; ObjectMapper mapper = new ObjectMapper(); EmployeeList employeList = mapper.readValue(jsonString,EmployeeList.class); ... } }
There is a field named employees in json.
But there is no corresponding getter and stter in EmployeeList class.
We only have getEmployeeList getter.
(one known property: "employeesList"])
change
public List<Employee> getEmployeeList() { public void setEmployeeList(List<Employee> list) {
to
public List<Employee> getEmployees() { public void setEmployees(List<Employee> list) {
It is case insensitive.
You can write it like this:
public List<Employee> getemployees() {
It's OK.