J'ai essayé de tester le code suivant sans succès:
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);
}
}
Ce problème est différent de celui-ci: Désérialiser JSON avec Jackson - Pourquoi JsonMappingException "Aucun constructeur approprié"?
comme j'ai manuellement remplacer le constructeur par défaut, et ce n'est pas une sous-classe.
Comment puis-je résoudre ce problème?
Faites-le statique. Jackson ne peut pas se désérialiser en classes intérieures
Le problème est probablement que Jackson ne peut pas atteindre correctement votre classe ND2Customer
pour invoquer son constructeur car il s'agit de private
, car votre classe a par ailleurs une apparence parfaite. Essayez de le rendre public
et de voir si cela fonctionne.