Maison >Java >javaDidacticiel >Comment convertir une chaîne JSON en objet Java avec Jackson ?

Comment convertir une chaîne JSON en objet Java avec Jackson ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-05 10:48:02710parcourir

How to Convert a JSON String to a Java Object with Jackson?

Conversion d'une chaîne JSON en objet Java avec Jackson

Pour convertir une chaîne JSON en objet Java, Jackson est une bibliothèque Java open source largement appréciée pour sa flexibilité. Dans ce cas, explorons comment utiliser Jackson pour atteindre votre objectif :

La chaîne JSON fournie contient une structure de type carte avec des paires clé-valeur pour "libraryname" et une liste imbriquée de "mymusic" contenant d'autres paires clé-valeur.

Utiliser Jackson pour convertir JSON en carte/liste :

<code class="java">ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(jsonString, Map.class);</code>

Cette approche traite le JSON comme une simple carte, où vous pouvez accéder aux valeurs à l'aide de la clé, telles que comme :

<code class="java">System.out.println(map.get("libraryname"));
List<Map<String, Object>> songsList = (List<Map<String, Object>>) map.get("mymusic");
System.out.println(songsList.get(0).get("Artist Name"));</code>

Utilisation de Jackson pour JSON Tree :

<code class="java">JsonNode rootNode = mapper.readTree(jsonString);</code>

L'approche JSON Tree vous permet d'accéder à la structure JSON de manière plus dynamique :

<code class="java">System.out.println(rootNode.get("libraryname").asText());
JsonNode myMusicArray = rootNode.get("mymusic");
System.out.println(myMusicArray.get(0).get("Artist Name").asText());</code>

Utilisation Java Pojos (approche préférée)

Vous pouvez également définir des objets Java Plain Old Java (POJO) pour représenter votre structure JSON :

<code class="java">public class Library {
    @JsonProperty("libraryname")
    private String name;
    @JsonProperty("mymusic")
    private List<Song> songs;
}
public class Song {
    @JsonProperty("Artist Name")
    private String artistName;
    @JsonProperty("Song Name")
    private String songName;
}

ObjectMapper mapper = new ObjectMapper();
Library library = mapper.readValue(jsonString, Library.class);</code>

Cette méthode vous permet d'accéder aux données dans un de manière plus orientée objet :

<code class="java">System.out.println(library.getName());
List<Song> songs = library.getSongs();
System.out.println(songs.get(0).getArtistName());</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn