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]