L'API de liaison des données est utilisée pour la conversion JSON et l'accès à l'aide d'attributs ou à l'aide de l'annotation POJO (objet Java normal). Voici deux types.
Renseignement des données simple - Convertir JSON à partir de cartes Java, listes, chaînes, nombres, booléens et objets nuls.
Liaison complète des données - Convertir JSON en n'importe quel type Java. Nous nous lierons séparément dans le chapitre suivant.
ObjectMapper lit / écrit JSON Deux types de liaison de données. Le moyen le plus pratique de la liaison des données est de l'analyseur JAXB de type XML.
Liaison des données simples
La liaison des données simple fait référence à la cartographie JSON aux types de données Java Core. Le tableau suivant répertorie la relation entre le type JSON et le type Java.
Jetons un coup d'œil à la simple liaison de manipulation des données. Ici, nous mapperons les types primitifs Java directement JSON et vice versa.
Créez un fichier de classe Java nommé JackSonter dans le répertoire c: /> jackson_workspace.
Dossier: jacksonteter.java
import java.io.file; import java.io.ioexception; import java.util.hashmap; import java.util.map; import org.codehaus.jackson.jsongenerationxception; import org.codehaus.jackson.jsonparseException; import org.codehaus.jackson.map.jsonmappingexception; importation org.codehaus.jackson.map.jsonmappingexception; importation org.codehaus.jackson.map.jsonmappingexception; importation org.codehaus.jackson.map.jsonmappingexception; import org.codehaus.jackson.map.objectmapper; classe publique jackSonter {public static void main (String args []) {jackSonter Tester = new JackSonterSter (); essayez {objectMapper Mappen = new ObjectMapper (); Map <string, objet> studentDatamap = new HashMap <String, object> (); int [] marques = {1,2,3}; Étudiant étudiant = nouveau étudiant (); Student.Setage (10); Student.SetName ("Mahesh"); // Java Object StudentDatamap.put ("Student", étudiant); // Java String StudentDatamap.put ("Name", "Mahesh Kumar"); // Java Boolean StudentDatamap.put ("Vérifié", boolean.false); // Array StudentDataMap.put ("marques", marques); MAPPER.WRITEVALUE (nouveau fichier ("Student.json"), StudentDataMap); // Student Student.json // {// "Student": {"Name": "Mahesh", "Age": 10}, // "Marks": [1,2,3], // "Verified": false, // "name": "Mahesh Kumar" //} StudentDataMap = make.readvalue (New Fichier ("Student.Json"), Maph); System.out.println (StudentDatamap.get ("Student")); System.out.println (StudentDatAmap.get ("Name")); System.out.println (StudentDatAmap.get ("vérifié")); System.out.println (StudentDatamap.get ("Marks")); } catch (JSonParseException e) {e.printStackTrace (); } catch (jsonmappingException e) {e.printStackTrace (); } catch (ioException e) {e.printStackTrace (); }}} classe Student {Nom de chaîne privée; Âge privé; public Student () {} public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public int getage () {return âge; } public void Setage (int Age) {this.age = age; } public String toString () {return "Student [name:" + name + ", Âge:" + Age + "]"; }}Résultats de la vérification
Utilisez Javac pour compiler la classe suivante:
La copie de code est la suivante:
C: / jackson_workspace> javac jacksonter.java
Maintenant, exécutez JackSonter pour voir le résultat:
La copie de code est la suivante:
C: / jackson_workspace> java jacksonteter
Vérifiez le résultat de sortie
{name = mahesh, âge = 10} Mahesh Kumarfalse [1, 2, 3] Liaison complète des données
La liaison complète des données fait référence au mappage JSON à n'importe quel objet Java.
// Créer un objectMapper instanceObjectMapper Mapper = new ObjectMapper (); // map le contenu JSON à l'étudiant objetStudent étudiant = mapper.readvalue (nouveau fichier ("student.json"), student.class); // map l'objet étudiant à json contentmapper.writeValue (nouveau fichier ("student.json"), étudiant);Jetons un coup d'œil à la simple liaison de manipulation des données. Ici, nous mapperons les objets Java directement à JSON et vice versa.
Créez un répertoire appelé JackSonter dans le fichier de classe Java c: /> jackson_workspace.
Dossier: jacksonteter.java
Importer java.io.file; import java.io.ioException; import org.codehaus.jackson.jsonsenerationxception; import org.codehaus.jackson.jsonparseException; import org.codehaus.jackson.map.jsonmappingException; Importer org.codehaus.jackson.map.oBjectMapper; Public Class Jacksonter {sciatiner scitatic void main (String args []) {JackSonter Tester = new JackSonTteter (); essayez {étudiant étudiant = new student (); Student.Setage (10); Student.SetName ("Mahesh"); Tester.writejson (étudiant); Étudiant étudiant1 = testeur.readjson (); System.out.println (Student1); } catch (JSonParseException e) {e.printStackTrace (); } catch (jsonmappingException e) {e.printStackTrace (); } catch (ioException e) {e.printStackTrace (); }} private void writejson (étudiant étudiant) lève jsonsenerationException, jsonmappingException, ioException {objectMapper mapper = new ObjectMapper (); MAPPER.WRITEVALUE (nouveau fichier ("Student.json"), étudiant); } Private Student ReadJSON () lève JSonParseException, JSONMappingException, ioException {ObjectMapper Mappeur = new ObjectMapper (); Student Student = Mapper.readValue (nouveau fichier ("Student.json"), Student.class); Retour étudiant; }} classe Student {Nom de chaîne privée; Âge privé; public Student () {} public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public int getage () {return âge; } public void Setage (int Age) {this.age = age; } public String toString () {return "Student [name:" + name + ", Âge:" + Age + "]"; }}Résultats de la vérification
Utilisez Javac pour compiler la classe suivante:
La copie de code est la suivante:
C: / jackson_workspace> javac jacksonter.java
Maintenant, exécutez JackSonter pour voir le résultat:
La copie de code est la suivante:
C: / jackson_workspace> java jacksonteter
Vérifiez que le code de copie est copié comme suit:
Étudiant [Nom: Mahesh, âge: 10]