Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
534 views
in Technique[技术] by (71.8m points)

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

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": "[email protected]", "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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Make it static. Jackson can not deserialize to inner classes


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...