Jackson Object Serialization
Здесь мы представим сериализующие объекты Java в файл JSON, а затем чтение файла JSON, чтобы быть преобразованным в объект. В этом примере создан класс ученика. Создайте студенческий объект, который будет представлен в JSON в файле Student.json.
Создайте файл класса Java с именем Jacksontester в c:/> jackson_workspace.
Файл: jacksontester.java
Импорт java.io.file; import java.io.ioexception; import org.codehaus.jackson.jsongenerationexception; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.map.jsonmappeexception; импорт org.codehaus.jackson.map.objectmapper; main (string args []) {jacksontester tester = new Jacksontester (); try {Student = new Student (); Student.Setage (10); Student.SetName ("Mahesh"); tester.writejson (студент); Студент 1 = tester.readjson (); System.out.println (Student1); } catch (jsonparseexception e) {e.printstacktrace (); } catch (jsonmappingException e) {e.printstacktrace (); } catch (ioException e) {e.printstackTrace (); }} private void writejson (студент -студент) Throws jsongenerationException, jsonmappingException, ioException {ObjectMapper mapper = new ObjectMapper (); mapper.writevalue (новый файл ("student.json"), студент); } Частный студент readjson () throws jsonparseexception, jsonmappingException, ioException {ObjectMapper mapper = new ObjectMapper (); Студент студент = mapper.readvalue (новый файл ("student.json"), study.class); возвращение студента; }} класс Студент {Private String name; частный int возраст; public Student () {} public String getName () {return name; } public void setName (string name) {this.name = name; } public int getage () {return Age; } public void setage (int age) {this.age = age; } public String toString () {return "Студент [name:"+ name+ ", age:"+ age+ "]"; }}Результаты проверки
Используйте Javac, чтобы составить следующий класс:
Кода -копия выглядит следующим образом:
C:/jackson_workspace> javac jacksontester.java
Теперь запустите Джексонестер, чтобы увидеть результат:
Кода -копия выглядит следующим образом:
C:/jackson_workspace> Java Jacksontester
Результат выхода проверки копируется следующим образом:
Студент [Имя: Махеш, возраст: 10]
Jackson Data Binding Generics
В простом привязке данных мы используем строку в качестве объекта ключа и отображаем класс как объект значения. Вместо этого мы можем использовать конкретные объекты и типы Java для подготовки к JSON.
Рассмотрим следующий пример, используя класс userdata, чтобы сохранить конкретные пользовательские данные.
Создайте каталог под названием Jacksontester в файле класса Java C:/> jackson_workspace.
Имя файла: jacksontester.java
Импорт java.io.file; импорт java.io.ioexception; import java.util.arrays; import java.util.hashmap; import java.util.list; импорт java.util.map; import org.codehaus.jackson.jsongenerationexceptexception; import org.codehaus.jackson.json.jashson.jsongenerationexceptexcept org.codehaus.jackson.map.jsonmappingException; import org.codehaus.jackson.map.objectmapper; import org.codehaus.jackson.type.typereference; открытый класс jacksontester {public static void main (String args []) {jacksontester tester = new jacksontester (); try {objectmapper mapper = new ObjectMapper (); Map userdatamap = new hashmap (); UserData StudentData = new userData (); int [] marks = {1,2,3}; Студент = новый студент (); Student.Setage (10); Student.SetName ("Mahesh"); // Java Object StudentData.SetStudent (студент); // Java String StudentData.SetName ("Махеш Кумар"); // Java Boolean StudentData.SetVerified (boolean.false); // Array StudentData.SetMarks (Marks); Typereference ref = new Typereference> () {}; userdatamap.put ("StudentData1", StudentData); mapper.writevalue (new File ("Student.json"), userDatamap); // {// "StudentData1": // {// "Студент": // {// "имя": "mahesh", // "AGE": 10 //}, // "name": "Mahesh Kumar", // "verified": false, // "marks": [1,2,3] //} //} usterdataMAP = MARKSER ": [1,2,3] //} //} uerdatamAp = marks. File ("student.json"), ref); 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 (); }}} Class Student {private String name; частный int возраст; public Student () {} public String getName () {return name; } public void setName (string name) {this.name = name; } public int getage () {return Age; } public void setage (int age) {this.age = age; } public String toString () {return "Студент [name:"+ name+ ", age:"+ age+ "]"; }} класс userData {частный студент; Приватное название строки; частная логическая проверка; Частный int [] отметки; public userdata () {} public Student getStudent () {return Student; } public void setStudent (студент -студент) {this.student = студент; } public String getName () {return name; } public void setName (string name) {this.name = name; } public boolean getVerified () {return verified; } public void setVerified (boolean verified) {this.Verified = verified; } public int [] getMarks () {return Marks; } public void setMarks (int [] marks) {this.marks = marks; }}Проверьте выход
Используйте Javac, чтобы составить следующий класс:
Кода -копия выглядит следующим образом:
C:/jackson_workspace> javac jacksontester.java
Теперь запустите Джексонестер, чтобы увидеть результат:
Кода -копия выглядит следующим образом:
C:/jackson_workspace> Java Jacksontester
Проверьте выход
Студент [Имя: Махеш, возраст: 10] Махеш Кумарфальс [1, 2, 3]