una para objetos objeto mapear lista libreria deserializando convertir convert con java json spring jackson

objetos - libreria json para java



Jackson ObjectMapper no puede deserializar POJO, lanza una excepción: no se encontró un constructor adecuado para el tipo[...]: no se puede crear una instancia del objeto JSON (2)

He intentado probar el siguiente código sin éxito:

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); } }

Este problema es diferente de este: Deserializar JSON con Jackson - ¿Por qué JsonMappingException "No hay un constructor adecuado"?

y éste: JsonMappingException: no se encontró un constructor adecuado para el tipo [tipo simple, clase]: no se puede crear una instancia del objeto JSON

y éste: JsonMappingException: no se encontró un constructor adecuado para el tipo [tipo simple, clase]: no se puede crear una instancia del objeto JSON

como he anulado manualmente el constructor predeterminado, y no es una subclase.

¿Cómo soluciono este problema?


Hazlo estático. Jackson no puede deserializar a clases internas.


Probablemente, el problema es que Jackson no puede alcanzar correctamente su clase ND2Customer para invocar a su constructor porque es private , ya que de lo contrario su clase se ve bien. Intenta hacerlo public y ver si eso funciona.