Please enable JavaScript.
Coggle requires JavaScript to display documents.
Parser un JSON avec Jackson, try {, } catch (IOException e) {, Actor actor…
Parser un JSON avec Jackson
JSON = JavaScript Object Notation)
format permettant de transcrire des données de façon textuelle
Ces données sont classées dans des objets sous forme d'arborescence
une racine aura une clé (le nom de la donnée)
ses branches auront des clés et des valeurs (les propriétés de la donnée)
On parle d'ensemble de paires clé/valeur.
Objets, tableaux, valeurs
JSON Object
Un objet est représenté par des accolades : à une clé est associée une valeur.
JSON Array
Un tableau est représenté par des crochets : à une clé est associé un ensemble de valeurs.
JSON Data Types
https://restfulapi.net/json-data-types/
Parsing
Récupérer la racine
transformer un texte contenu dans un fichier en objet Java = "parsing".
ObjectMapper objectMapper = new ObjectMapper();
ObjectMapper
Analyse un contenu JSON et à le transformer en objet Java
Récupérer des valeurs
String nameValue = root.get("name").asText();
Le cas d'un JSON Object
Par défaut, à chaque fois que tu utilises la méthode get sur un JsonNode, tu vas récupérer un nouvel objet de type JsonNode. C'est pour cela que tu as besoin des méthodes asText, astInt, asDouble ou encore asBoolean pour lui préciser le type réel de la valeur récupérée.
JsonNode contactObject = root.get("contact");
String contactName = contactObject.get("name").asText();
Parcourir un JSON Array
récupérer le tableau sous la forme d'un JsonNode et le parcourir avec une boucle for each.
for (JsonNode hobby : root.get("hobbies")) {
System.out.println(hobby.asText());
Mapping
convertir les données d'un JSON vers une classe Java.
ObjectMapper objectMapper = new ObjectMapper();
:
JsonProperty("image_path").
Pour permettre au mapping de se faire automatiquement, il faut donc préciser le nom de la propriété
try {
JsonNode root = objectMapper.readTree(new File("path/of/json/file.json"));
readTree
Méthode qui permet, à partir d'un fichier, d'obtenir un objet JsonNode qui contient les clés et les valeurs de la racine du JSON.
} catch (IOException e) {
e.printStackTrace();
Actor actor = objectMapper.convertValue(root.get("actor"), Actor.class);
la méthode convertValue() va créer l'instance de Actor = mapping
}
int ageValue = root.get("age").asInt();
double sizeValue = root.get("size").asDouble();
boolean isPsychopath = root.get("size").asBoolean();
}
try {
JsonNode root = objectMapper.readTree(new File(ACTOR_JSON));
} catch (IOException e) {
e.printStackTrace();
}