Auftreten der JsonMappingException
Beim Arbeiten mit der JSON-zu-Java-Zuordnung können Sie gelegentlich eine JsonMappingException
(JSON-Zuordnungsexception) erhalten. Diese Ausnahme wird ausgelöst, wenn die JSON-Parsing-Bibliothek die JSON-Daten nicht auf die entsprechende Java-Klasse zuordnen kann.
Ursachen der JsonMappingException
- Unpassende Datentypen: Wenn die JSON-Daten einen Wert enthalten, der nicht direkt auf den entsprechenden Java-Feldtyp zugeordnet werden kann, wird eine
JsonMappingException
ausgelöst.
- Fehlende oder zusätzliche Felder: Wenn die JSON-Daten ein Feld enthalten, das in der Java-Klasse nicht vorhanden ist, oder wenn die Java-Klasse ein Feld hat, das in den JSON-Daten nicht vorhanden ist, kann eine
JsonMappingException
auftreten.
- Nicht unterstützte Datenstrukturen: Wenn die JSON-Daten komplexe Datenstrukturen wie verschachtelte Objekte oder Arrays enthalten, die von der Java-Klasse nicht richtig verarbeitet werden, kann eine
JsonMappingException
ausgelöst werden.
Beispiel: Auftreten der JsonMappingException
Nehmen wir an, wir haben die folgenden JSON-Daten:
{
"name": "John Doe",
"age": 30,
"email": "[email protected]"
}
Und wir haben eine Java-Klasse Person
, die wie folgt definiert ist:
public class Person {
private String name;
private int age;
}
Wenn wir versuchen, die JSON-Daten auf die Person
-Klasse zuzuordnen, erhalten wir eine JsonMappingException
, da die JSON-Daten ein email
-Feld enthalten, das in der Person
-Klasse nicht vorhanden ist.
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonData, Person.class);
Ausgabe:
com.fasterxml.jackson.databind.JsonMappingException: Unknown field "email"
Im nächsten Abschnitt werden wir besprechen, wie solche JsonMappingException
-Probleme gelöst werden können.