Jackson ObjectMapper cannot deserialize POJO, throws an exception: No suitable constructor found for type [...]: can not instantiate from JSON object

jackson, java, json, spring

Solution

Make it static. Jackson can not deserialize to inner classes

Problem

I have tried to test the following code with no success: ``` class TestClass { private class ND2Customer { public String name; public String description; public String email; public Boolean multiuser; public String dnszone; public String uri; public String type; public ND2Customer() { } } @Test public void TestJackson() throws JsonParseException, JsonMappingException, IOException { String json="{\"description\": \"test1u\", \"dnszone\": \"test1.public.sevenltest.example.com.\", \"uri\": \"http://199.127.129.69/customer/test1\", \"multiuser\": true, \"type\": \"2.0.3-3146\", \"email\": \"test1@com.com\", \"name\": \"test1\"}"; ObjectMapper mapper = new ObjectMapper(); ND2Customer casted=mapper.readValue(json, ND2Customer.class); String castedback=mapper.defaultPrettyPrintingWriter().writeValueAsString(casted); System.out.println(castedback); } } ``` This problem is different from this one: Deserializing JSON with Jackson - Why JsonMappingException "No suitable constructor"? and this one: JsonMappingException: No suitable constructor found for type [simple type, class ]: can not instantiate from JSON object and this one: JsonMappingException: No suitable constructor found for type [simple type, class ]: can not instantiate from JSON object as I have manually override the default constructor, and its not a subclass. How do I fix this problem?

Original source

Related problems