Учебники

Джексон — привязка данных

API привязки данных используется для преобразования JSON в POJO (простой старый объект Java) и обратно с использованием метода доступа к свойствам или аннотаций. Это двух типов.

  • Простое связывание данных — преобразует JSON в и из Java-карт, списков, строк, чисел, логических и нулевых объектов.

  • Полная привязка данных — преобразует JSON в любой тип JAVA.

Простое связывание данных — преобразует JSON в и из Java-карт, списков, строк, чисел, логических и нулевых объектов.

Полная привязка данных — преобразует JSON в любой тип JAVA.

ObjectMapper читает / записывает JSON для обоих типов привязок данных. Привязка данных является наиболее удобным способом и аналогом JAXB parer для XML.

Простое связывание данных

Простая привязка данных относится к отображению JSON в типы данных JAVA Core. Следующая таблица иллюстрирует связь между типами JSON и типами Java.

Старший Тип JSON Тип Java
1 объект LinkedHashMap <String, Object>
2 массив ArrayList <Object>
3 строка строка
4 полный номер Integer, Long или BigInteger
5 дробное число Double / BigDecimal
6 правда | ложный логический
7 ноль ноль

Давайте посмотрим простую привязку данных в действии. Здесь мы отобразим основные типы JAVA непосредственно в JSON и наоборот.

Создайте файл Java-класса с именем JacksonTester в C: \> Jackson_WORKSPACE .

Файл: JacksonTester.java

 импорт java.io.File;
 импорт java.io.IOException;
 import java.util.HashMap;
 импорт java.util.Map;

 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;

 открытый класс JacksonTester {
    public static void main (String args []) {
       Тестер JacksonTester = новый тестер JacksonTester ();
          пытаться {
             ObjectMapper mapper = new ObjectMapper ();

             Map <String, Object> studentDataMap = new HashMap <String, Object> (); 
             int [] marks = {1,2,3};

             Студент студент = новый студент ();
             student.setAge (10);
             student.setName ( "Махеш");
             // JAVA Object
             studentDataMap.put («студент», студент);
             // Строка JAVA
             studentDataMap.put ("имя", "Махеш Кумар");   		
             // JAVA Boolean
             studentDataMap.put («проверено», Boolean.FALSE);
             // Массив
             studentDataMap.put («отметки», отметки);

             mapper.writeValue (новый файл ("student.json"), studentDataMap);
             // результат student.json
			 // { 
             // "student": {"name": "Mahesh", "age": 10},
             // "отметки": [1,2,3],
             // «проверено»: ложь,
             // "имя": "Махеш Кумар"
             //}
             studentDataMap = mapper.readValue (новый файл ("student.json"), Map.class);

             System.out.println (studentDataMap.get ( "студент"));
             System.out.println (studentDataMap.get ( "имя"));
             System.out.println (studentDataMap.get ( "проверено"));
             System.out.println (studentDataMap.get ( "метки"));
       } catch (JsonParseException e) {
          e.printStackTrace ();
       } catch (JsonMappingException e) {
          e.printStackTrace ();
       } catch (IOException e) {
             e.printStackTrace ();
       }
    }
 }

 ученик класса {
    личное строковое имя;
    частный возраст;
    государственный студент () {}
    public String getName () {
       вернуть имя;
    }
    public void setName (String name) {
       this.name = имя;
    }
    public int getAge () {
       возвращаемый возраст;
    }
    public void setAge (int age) {
       this.age = возраст;
    }
    public String toString () {
       return "Студент [имя:" + имя + ", возраст:" + возраст + "]";
    }	
 }

Проверьте результат

Скомпилируйте классы, используя компилятор javac следующим образом:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Теперь запустите jacksonTester, чтобы увидеть результат:

C:\Jackson_WORKSPACE>java JacksonTester

Проверьте вывод

{name=Mahesh, age=10}
Mahesh Kumar
false
[1, 2, 3]

Полная привязка данных

Привязка данных с помощью обобщений