Série d'objets Jackson
Ici, nous introduirons la sérialisation des objets Java dans un fichier JSON, puis en lisant le fichier JSON pour être converti en un objet. Dans cet exemple, la classe étudiante est créée. Créez un objet étudiant qui sera représenté dans JSON dans un fichier Student.json.
Créez un fichier de classe Java nommé JackSonter en 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
Le résultat de la sortie de vérification est copié comme suit:
Étudiant [Nom: Mahesh, âge: 10]
Génériques de liaison des données de Jackson
Dans la liaison des données simple, nous utilisons la chaîne comme objet clé et mappez la classe comme un objet de valeur. Au lieu de cela, nous pouvons utiliser des objets et des types Java spécifiques à lancer sur JSON.
Considérez l'exemple suivant à l'aide d'une classe UserData pour enregistrer des données spécifiques à l'utilisateur.
Créez un répertoire appelé JackSonter dans le fichier de classe Java c: /> jackson_workspace.
Nom du fichier: jacksonter.java
Importer java.io.file; import java.io.ioexception; import java.util.arrays; import java.util.hashmap; import java.util.list; import java.util.map; import org.codehaus.jackson.jsongenerationException; import org.codehaus.jackson.jackson.jsongentexception; importation org.codehaus.jackson. org.codehaus.jackson.map.jsonmappingException; import org.codehaus.jackson.map.objectmapper; import org.codehaus.jackson.type.Typereference; public class jackSonter {public static void main (String args []) {jackSonter Tester = New JackSonTter (); essayez {objectMapper Mappen = new ObjectMapper (); Map userdatamap = new hashmap (); UserData StudentData = new UserData (); int [] marques = {1,2,3}; Étudiant étudiant = nouveau étudiant (); Student.Setage (10); Student.SetName ("Mahesh"); // Java Object StudentData.setStudent (étudiant); // Java String StudentData.SetName ("Mahesh Kumar"); // Java Boolean StudentData.SetVerified (boolean.false); // Array StudentData.Setmarks (marques); Typereference ref = new TypeReference> () {}; userdatamap.put ("StudentData1", StudentData); MAPER.WRITEVALUE (nouveau fichier ("Student.json"), UserDataMap); // {// "StudentData1": // {// "Student": // {// "name": "Mahesh", // "Age": 10 //}, // "name": "Mahesh Kumar", // "Verified": false, false, "marks": [1,2,3] //} //} userdatamap = ma sppervale. File ("Student.json"), réf); System.out.println (UserDatamap.get ("StudentData1"). GetStudent ()); System.out.println (UserDatamap.get ("StudentData1"). GetName ()); System.out.println (userDatamap.get ("StudentData1"). GetVerified ()); System.out.println (Arrays.ToString (UserDatamap.get ("StudentData1"). Getmarks ())); } 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 + "]"; }} classe UserData {étudiant privé étudiant; nom de chaîne privé; Boolean privé vérifié; marques int [] privées; public userData () {} public Student getStudent () {return étudiant; } public void SetStudent (étudiant étudiant) {this.Student = étudiant; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public boolean getVerified () {return vérifié; } public void setVerified (boolean vérifié) {this.verified = vérifié; } public int [] getmarks () {marques de retour; } public void setmarks (int [] marques) {this.marks = marks; }}Vérifiez la sortie
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 la sortie
Étudiant [Nom: Mahesh, âge: 10] Mahesh Kumarfalse [1, 2, 3]