API привязки данных используется для преобразования и доступа JSON с использованием атрибутов или использования аннотационных POJO (нормальный объект Java). Вот два типа этого.
Простая привязка данных - преобразовать JSON с карт Java, списков, строк, чисел, логических и нулевых объектов.
Полная привязка данных - преобразовать JSON в любой тип Java. Мы свяжемся отдельно в следующей главе.
ObjectMapper читает/записывает JSON два типа привязки данных. Наиболее удобный способ привязки данных-это анализатор xml-подобного Jaxb.
Простая привязка данных
Простая привязка данных относится к картированию JSON с типами основных данных Java. В следующей таблице перечислены отношения между типом JSON и типом Java.
Давайте посмотрим на простое привязка манипуляций с данными. Здесь мы будем наносить на карту Java Primitive Tipes напрямую JSON и наоборот.
Создайте файл класса Java с именем Jacksontester в каталоге C:/> jackson_workspace.
Файл: jacksontester.java
Импорт java.io.file; импорт java.io.ioexception; import java.util.hashmap; импорт java.util.map; import org.codehaus.jackson.jsongenerationexception; import org.codehaus.jackson.jsonParseexcept org.codehaus.jackson.map.objectmapper; открытый класс jacksontester {public static void main (String args []) {jacksontester tester = new Jacksontester (); try {objectmapper mapper = new ObjectMapper (); Map <String, Object> StudentDatamap = new HashMap <String, Object> (); int [] marks = {1,2,3}; Студент = новый студент (); Student.Setage (10); Student.SetName ("Mahesh"); // Java Object StudentDatamap.put ("Студент", студент); // java String StudentDatamap.put ("имя", "Махеш Кумар"); // java boolean student dadatamap.put ("verified", boolean.false); // Array StudentDatamap.put ("Marks", Marks); mapper.writevalue (новый файл ("Student.json"), StudentDatamap); // Результат Student.json // {// "Студент": {"name": "mahesh", "age": 10}, // "Marks": [1,2,3], // "проверено": false, // "имя": "Махеш Кумар" //} studentDatamap = mapper.readvalue (new student. System.out.println (Student Dadatamap.get ("Студент")); System.out.println (student dadatamap.get ("name")); System.out.println (student dadatamap.get ("проверка")); System.out.println (studentDatamap.get ("Marks")); } 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+ "]"; }}Результаты проверки
Используйте Javac, чтобы составить следующий класс:
Кода -копия выглядит следующим образом:
C:/jackson_workspace> javac jacksontester.java
Теперь запустите Джексонестер, чтобы увидеть результат:
Кода -копия выглядит следующим образом:
C:/jackson_workspace> Java Jacksontester
Проверьте результат вывода
{имя = Махеш, возраст = 10} Махеш Кумарфалсе [1, 2, 3] Полное привязка данных
Полное привязка данных относится к картированию JSON с любым объектом Java.
// Создать объект intemptmapper exantyobjectmapper mapper = new ObjectMapper (); // MAP JSON CONTEPLO С студентом ObjectStudent Student = mapper.readValue (новый файл ("student.json"), study.class); // Map студента объекта JSON contentMapper.writevalue (новый файл ("student.json"), студент);Давайте посмотрим на простое привязка манипуляций с данными. Здесь мы будем наносить на карту объекты Java непосредственно на JSON и наоборот.
Создайте каталог под названием Jacksontester в файле класса Java 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]