Учебники

Джексон – модель дерева

Модель дерева подготавливает представление дерева JSON в памяти. ObjectMapper построить дерево узлов JsonNode. Это самый гибкий подход. Это аналог парсера DOM для XML.

Создать дерево из JSON

ObjectMapper предоставляет указатель на корневой узел дерева после чтения JSON. Корневой узел может использоваться для обхода всего дерева. Рассмотрим следующий фрагмент кода, чтобы получить корневой узел предоставленной строки JSON.

//Create an ObjectMapper instance
ObjectMapper mapper = new ObjectMapper();	
String jsonString = "{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
//create tree from JSON
JsonNode rootNode = mapper.readTree(jsonString);

Модель дерева обхода

Получите каждый узел, используя относительный путь к корневому узлу при обходе дерева и обработайте данные. Рассмотрим следующий фрагмент кода, проходящий по дереву при условии корневого узла.

JsonNode nameNode = rootNode.path("name");
System.out.println("Name: "+ nameNode.textValue());
 
JsonNode marksNode = rootNode.path("marks");
Iterator<JsonNode> iterator = marksNode.elements();

пример

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

Файл: JacksonTester.java

 импорт java.io.IOException;
 импорт java.util.Iterator;

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

 открытый класс JacksonTester {
    public static void main (String args []) {

       пытаться {
          ObjectMapper mapper = new ObjectMapper ();
          String jsonString = "{\" name \ ": \" Махеш Кумар \ ", \" age \ ": 21, \" Verified \ ": false, \" marks \ ": [100,90,85]}";
          JsonNode rootNode = mapper.readTree (jsonString);

          JsonNode nameNode = rootNode.path ("имя");
          System.out.println ("Имя:" + nameNode.textValue ());

          JsonNode ageNode = rootNode.path ("age");
          System.out.println ("Age:" + ageNode.intValue ());

          JsonNode verifyNode = rootNode.path («подтверждено»);
          System.out.println ("Проверено:" + (verifyNode.booleanValue ()? "Да": "Нет"));

          JsonNode marksNode = rootNode.path ("marks");
          Iterator <JsonNode> iterator = marksNode.elements ();
          System.out.print ("Метки: [");

          while (iterator.hasNext ()) {
             JsonNode marks = iterator.next ();
             System.out.print (marks.intValue () + ""); 
          }

          System.out.println ( "]");
       }
       catch (JsonParseException e) {e.printStackTrace ();  }
       catch (JsonMappingException e) {e.printStackTrace ();  }
       catch (IOException e) {e.printStackTrace ();  }
    }
 }

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

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

Name: Mahesh Kumar
Age: 21
Verified: No
Marks: [ 100 90 85 ]

Дерево в JSON

Дерево к объектам Java