Джексон - Краткое руководство

Jackson - это простая библиотека на основе Java для сериализации объектов Java в JSON и наоборот.

Особенности

  • Easy to use. - API jackson предоставляет фасад высокого уровня для упрощения часто используемых вариантов использования.

  • No need to create mapping. - jackson API обеспечивает отображение по умолчанию для большинства сериализуемых объектов.

  • Performance. - jackson работает тихо, быстро, занимает мало памяти и подходит для графов или систем больших объектов.

  • Clean JSON. - jackson создает чистые и компактные результаты JSON, которые легко читать.

  • No Dependency. - Библиотека jackson не требует никаких других библиотек, кроме jdk.

  • Open Source - Библиотека Джексона имеет открытый исходный код и бесплатна для использования.

Три способа обработки JSON

Джексон предлагает три альтернативных способа обработки JSON

  • Streaming API- читает и записывает содержимое JSON как отдельные события. JsonParser читает данные, тогда как JsonGenerator записывает данные. Это самый мощный из трех подходов с наименьшими накладными расходами и самым быстрым в операциях чтения / записи. Это аналог парсера Stax для XML.

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

  • Data Binding - преобразует JSON в POJO (обычный старый объект Java) и из него, используя метод доступа к свойству или аннотации. Он бывает двух типов.

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

    • Full Data Binding - Преобразует JSON в любой тип JAVA и обратно.

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

Попробуйте вариант онлайн

Вам действительно не нужно создавать собственную среду, чтобы начать изучение Guava, библиотеки на основе JAVA. Причина очень проста: у нас уже есть онлайн-среда программирования Java, так что вы можете компилировать и выполнять все доступные онлайн-примеры одновременно, когда вы занимаетесь своей теоретической работой. Это дает вам уверенность в том, что вы читаете, и позволяет проверять результат с помощью различных параметров. Не стесняйтесь изменять любой пример и выполнять его онлайн.

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

public class MyFirstJavaProgram {

    public static void main(String []args) {
       System.out.println("Hello World");
    }
}

Для большинства примеров, приведенных в этом руководстве, вы найдете Try it вариант, так что просто используйте его и наслаждайтесь обучением.

Настройка локальной среды

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

Java SE бесплатно доступен по ссылке Загрузить Java . Итак, вы загружаете версию, основанную на вашей операционной системе.

Следуйте инструкциям, чтобы загрузить java и запустить .exeчтобы установить Java на свой компьютер. После того, как вы установили Java на свой компьютер, вам нужно будет установить переменные среды, чтобы они указывали на правильные каталоги установки:

Настройка пути для windows 2000 / XP:

Предполагая, что вы установили Java в каталог c: \ Program Files \ java \ jdk :

  • Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства».

  • Нажмите кнопку «Переменные среды» на вкладке «Дополнительно».

  • Теперь измените переменную Path, чтобы она также содержала путь к исполняемому файлу Java. Например, если в настоящее время задан путь «C: \ WINDOWS \ SYSTEM32», измените путь на «C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin».

Настройка пути для windows 95/98 / ME:

Предполагая, что вы установили Java в каталог c: \ Program Files \ java \ jdk :

  • Отредактируйте файл 'C: \ autoexec.bat' и добавьте в конец следующую строку:
    'SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin'

Настройка пути для Linux, UNIX, Solaris, FreeBSD:

Переменная среды PATH должна указывать на место установки двоичных файлов Java. Обратитесь к документации по оболочке, если у вас возникли проблемы с этим.

Например, если вы используете bash в качестве оболочки, вы должны добавить следующую строку в конец вашего '.bashrc: export PATH = / path / to / java: $ PATH'

Популярные редакторы Java:

Для написания программ на Java вам понадобится текстовый редактор. На рынке доступны даже более сложные IDE. Но пока вы можете рассмотреть одно из следующих:

  • Notepad: На компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.

  • Netbeans:это Java IDE с открытым исходным кодом и бесплатная, которую можно загрузить с http://www.netbeans.org/index.html.

  • Eclipse: также является Java IDE, разработанной сообществом разработчиков открытого исходного кода eclipse, и ее можно загрузить с http://www.eclipse.org/.

Скачать архив jackson

Загрузите последнюю версию файла jar Jackson из репозитория Maven - Jackson . В этом руководстве файлы jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar и jackson-databind-2.8.9.jar загружаются и копируются в папку C: \> jackson.

Операционные системы Имя архива
Windows Джексон-ххх-2.8.9.jar
Linux Джексон-ххх-2.8.9.jar
Mac Джексон-ххх-2.8.9.jar

Установить среду Джексона

Установить jackson_HOMEпеременная среды, указывающая на местоположение базового каталога, в котором хранится Guava jar на вашем компьютере. Предположим, мы извлекли jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar и jackson-databind-2.8.9.jar в папку jackson в различных операционных системах следующим образом.

Операционные системы Вывод
Windows Установите для переменной среды jackson_HOME значение C: \ jackson
Linux экспорт jackson_HOME = / usr / local / jackson
Mac экспорт jackson_HOME = / Библиотека / Джексон

Установить переменную CLASSPATH

Установить CLASSPATHпеременная окружения, указывающая на местоположение банки Джексона. Предположим, мы сохранили jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar и jackson-databind-2.8.9.jar в папке jackson в различных операционных системах следующим образом.

Операционные системы Вывод
Windows Установите для переменной среды CLASSPATH значение% CLASSPATH%;% jackson_HOME% \ jackson-core-2.8.9.jar;% jackson_HOME% \ jackson-databind-2.8.9.jar;% jackson_HOME% \ jackson-annotations-2.8.9. банка;.;
Linux экспорт CLASSPATH = $ CLASSPATH:$jackson_HOME/jackson-core-2.8.9.jar:$jackson_HOME / jackson-databind-2.8.9.jar: $ jackson_HOME / jackson-annotations-2.8.9.jar :.
Mac экспорт CLASSPATH = $ CLASSPATH:$jackson_HOME/jackson-core-2.8.9.jar:$jackson_HOME / jackson-databind-2.8.9.jar: $ jackson_HOME / jackson-annotations-2.8.9.jar :.

Прежде чем вдаваться в подробности библиотеки Джексона, давайте посмотрим на приложение в действии. В этом примере мы создали класс Student. Мы создадим строку JSON с данными студента и десериализуем ее в объект студента, а затем сериализуем ее в строку JSON.

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

Файл: JacksonTester.java

import java.io.IOException;

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

public class JacksonTester {
   public static void main(String args[]){
   
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      
      //map json to student
      try{
         Student student = mapper.readValue(jsonString, Student.class);
         
         System.out.println(student);
         
         jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
         
         System.out.println(jsonString);
      }
      catch (JsonParseException e) { e.printStackTrace();}
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

class Student {
   private String name;
   private int age;
   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 "Student [ name: "+name+", age: "+ age+ " ]";
   }
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}

Что нужно помнить

Ниже приведены важные шаги, которые следует учитывать здесь.

Шаг 1: Создайте объект ObjectMapper.

Создайте объект ObjectMapper. Это объект многоразового использования.

ObjectMapper mapper = new ObjectMapper();

Шаг 2: DeSerialize JSON в Object.

Используйте метод readValue (), чтобы получить объект из JSON. Передайте строку json / источник строки json и тип объекта в качестве параметра.

//Object to JSON Conversion
Student student = mapper.readValue(jsonString, Student.class);

Шаг 3: сериализуйте объект в JSON.

Используйте метод writeValueAsString (), чтобы получить строковое представление объекта в формате JSON.

//Object to JSON Conversion		
jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);

ObjectMapper - это основной класс акторов библиотеки Джексона. Класс ObjectMapper ObjectMapper предоставляет функциональные возможности для чтения и записи JSON либо в базовые объекты POJO (обычные старые объекты Java) и из них, либо в модель дерева JSON общего назначения (JsonNode) и обратно, а также связанные функции для выполнения преобразований. Он также имеет широкие возможности настройки для работы как с различными стилями содержимого JSON, так и для поддержки более сложных концепций объектов, таких как полиморфизм и идентичность объектов. ObjectMapper также действует как фабрика для более продвинутых классов ObjectReader и ObjectWriter.

Объявление класса

Ниже приводится декларация для com.fasterxml.jackson.databind.ObjectMapper класс -

public class ObjectMapper
   extends ObjectCodec
      implements Versioned, Serializable

Вложенные классы

S.No. Класс и описание
1 static class ObjectMapper.DefaultTypeResolverBuilder

Настроенный TypeResolverBuilder, который предоставляет построители преобразователя типов, используемые с так называемой «типизацией по умолчанию» (подробности см. В enableDefaultTyping ()).

2 static class ObjectMapper.DefaultTyping

Перечисление, используемое с enableDefaultTyping (), чтобы указать, для каких типов (классов) следует использовать типизацию по умолчанию.

Поля

  • protected DeserializationConfig _deserializationConfig - Объект конфигурации, определяющий основные глобальные настройки для процесса сериализации.

  • protected DefaultDeserializationContext _deserializationContext- объект контекста Blueprint; хранится здесь, чтобы разрешить настраиваемые подклассы.

  • protected InjectableValues _injectableValues - Поставщик значений для внедрения в десериализованные POJO.

  • protected JsonFactory _jsonFactory - Factory используется для создания экземпляров JsonParser и JsonGenerator по мере необходимости.

  • protected SimpleMixInResolver _mixIns - Сопоставление, которое определяет, как применять смешанные аннотации: ключ - это тип для получения дополнительных аннотаций, а значение - это тип, который имеет аннотации для "смешивания".

  • protected ConfigOverrides _propertyOverrides - В настоящее время активные переопределения конфигурации для каждого типа, доступ к которым осуществляется объявленным типом свойства.

  • protected Set<Object> _registeredModuleTypes - Набор типов модулей (согласно Module.getTypeId (), которые были зарегистрированы; отслеживается, если включен MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS, так что дублирующиеся вызовы регистрации могут игнорироваться (чтобы избежать добавления одних и тех же обработчиков несколько раз, в большинстве случаев).

  • protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers - Мы будем использовать отдельную карту основного уровня для отслеживания десериализаторов корневого уровня.

  • protected SerializationConfig _serializationConfig - Объект конфигурации, определяющий основные глобальные настройки для процесса сериализации.

  • protected SerializerFactory _serializerFactory - Фабрика сериализаторов, используемая для создания сериализаторов.

  • protected DefaultSerializerProvider _serializerProvider - Объект, который управляет доступом к сериализаторам, используемым для сериализации, включая кеширование.

  • protected SubtypeResolver _subtypeResolver - Вещь, используемая для регистрации подтипов, при необходимости преобразовывая их в супер / подтипы.

  • protected TypeFactory _typeFactory- Конкретная фабрика, используемая для создания экземпляров JavaType; необходимо, чтобы позволить модулям добавлять больше настраиваемой обработки типов (в основном для поддержки типов языков JVM, отличных от Java).

  • protected static AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR

  • protected static BaseSettings DEFAULT_BASE - Базовые настройки содержат значения по умолчанию, используемые для всех экземпляров ObjectMapper.

  • protected static VisibilityChecker<?> STD_VISIBILITY_CHECKER

Конструкторы

S.No. Конструктор и описание
1 ObjectMapper()

Конструктор по умолчанию, который при необходимости создаст JsonFactory по умолчанию, использует SerializerProvider в качестве своего SerializerProvider и BeanSerializerFactory в качестве своего SerializerFactory.

2 ObjectMapper(JsonFactory jf)

Создает экземпляр, который использует указанный JsonFactory для создания необходимых JsonParsers и / или JsonGenerators.

3 ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp)

Создает экземпляр, который использует указанный JsonFactory для создания необходимых JsonParsers и / или JsonGenerators, и использует заданные поставщики для доступа к сериализаторам и десериализаторам.

4 protected ObjectMapper(ObjectMapper src)

Копирующий конструктор, в основном используется для поддержки copy ().

Методы

Переопределяемый вспомогательный метод, используемый для создания SerializerProvider, который будет использоваться для сериализации. void addMixInAnnotations (Class <?> target, Class <?> mixinSource) - устарело. Начиная с версии 2.5: заменен беглой формой метода; addMixIn (Класс, Класс). protected DefaultDeserializationContext createDeserializationContext (JsonParser p, DeserializationConfig cfg) - внутренний вспомогательный метод, вызываемый для создания экземпляра DeserializationContext для десериализации одного корневого значения. JsonSchema generateJsonSchema (Class <?> T) - не рекомендуется. Начиная с версии 2.6 используется внешний генератор схемы JSON (https://github.com/FasterXML/jackson-module-jsonSchema) (который под капотом вызывает acceptJsonFormatVisitor (JavaType, JsonFormatVisitorWrapper)) void registerSubtypes (Class <?> ... классы) - Метод для регистрации указанного класса в качестве подтипа, чтобы разрешение на основе имени типа могло связывать супертипы с подтипами (как альтернатива использованию аннотаций). void setFilters (FilterProvider filterProvider) - не рекомендуется. Начиная с версии 2.6, вместо этого используйте setFilterProvider (com.fasterxml.jackson.databind.ser.FilterProvider) (разрешает цепочку) Factory метод для создания ObjectReader, который будет использовать указанные детали экранирования символов для вывода.
1 protected void _checkInvalidCopy(Class<?> exp)

2 protected void _configAndWriteValue(JsonGenerator g, Object value) - Метод, вызываемый для настройки генератора по мере необходимости, а затем вызова функции записи
3 protected Object _convert(Object fromValue, JavaType toValueType) - Фактическая реализация преобразования: вместо использования существующих методов чтения и записи большая часть кода встроена.
4 protected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) - Метод, вызываемый для поиска десериализатора для переданного значения корневого уровня.
5 protected JsonToken _initForReading(JsonParser p) - Метод вызывается, чтобы убедиться, что данный парсер готов к чтению содержимого для привязки данных.
6 protected ObjectReader _newReader(DeserializationConfig config) - Подклассы фабричных методов должны переопределить, чтобы создавать экземпляры ObjectReader соответствующего подтипа.
7 protected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues) - Подклассы фабричных методов должны переопределить, чтобы создавать экземпляры ObjectReader соответствующего подтипа.
8 protected ObjectWriter _newWriter(SerializationConfig config) - Подклассы фабричных методов должны переопределить, чтобы создавать экземпляры ObjectWriter надлежащего подтипа
9 protected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema) - Подклассы фабричных методов должны переопределить, чтобы создавать экземпляры ObjectWriter надлежащего подтипа
10 protected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp) - Подклассы фабричных методов должны переопределить, чтобы создать экземпляры ObjectWriter надлежащего подтипа.
11 protected Object _readMapAndClose(JsonParser p0, JavaType valueType)
12 protected Object _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) - Актуальная реализация операции чтения + привязки значения.
13 protected DefaultSerializerProvider _serializerProvider(SerializationConfig config)
14 protected Object _unwrapAndDeserialize(JsonParser p, DeserializationContext ctxt, DeserializationConfig config, JavaType rootType, JsonDeserializer<Object> deser)
15 protected void _verifySchemaType(FormatSchema schema)
16 void acceptJsonFormatVisitor(Class<?> type, JsonFormatVisitorWrapper visitor) - Метод посещения иерархии типов для данного типа с использованием указанного посетителя.
17 void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) - Метод посещения иерархии типов для данного типа с использованием указанного посетителя.
18 ObjectMapper addHandler(DeserializationProblemHandler h) - Метод добавления указанного DeserializationProblemHandler, который будет использоваться для обработки конкретных проблем во время десериализации.
19 ObjectMapper addMixIn(Class<?> target, Class<?> mixinSource) - Метод, используемый для добавления смешанных аннотаций, используемых для расширения указанного класса или интерфейса.
20 boolean canDeserialize(JavaType type) - Метод, который можно вызвать, чтобы проверить, думает ли картограф, что он может десериализовать объект данного типа.
21 год boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause) - Метод похож на canDeserialize (JavaType), но может возвращать фактический Throwable, который был сгенерирован при попытке создать сериализатор: это может быть полезно при выяснении реальной проблемы.
22 boolean canSerialize(Class<?> type) - Метод, который можно вызвать, чтобы проверить, думает ли картограф, что он может сериализовать экземпляр данного класса.
23 boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause) - Метод похож на canSerialize (Class), но может возвращать фактический Throwable, который был сгенерирован при попытке создать сериализатор: это может быть полезно при выяснении реальной проблемы.
24 ObjectMapper clearProblemHandlers() - Метод удаления всех зарегистрированных экземпляров DeserializationProblemHandlers из этого сопоставителя.
25 MutableConfigOverride configOverride(Classlt;?> type) - Аксессор для получения изменяемого объекта переопределения конфигурации для данного типа, необходимого для добавления или изменения переопределений для каждого типа, применяемых к свойствам данного типа.
26 ObjectMapper configure(DeserializationFeature f, boolean state) - Метод изменения состояния функции включения / выключения десериализации для этого сопоставителя объектов.
27 ObjectMapper configure(JsonGenerator.Feature f, boolean state) - Метод изменения состояния включения / выключения функции JsonGenerator для экземпляров генератора, создаваемых этим сопоставителем объектов.
28 ObjectMapper configure(JsonParser.Feature f, boolean state) - Метод изменения состояния указанного JsonParser.Features для экземпляров парсера, создаваемых этим сопоставителем объектов.
29 ObjectMapper configure(MapperFeature f, boolean state) - Метод изменения состояния функции включения / выключения сопоставителя для этого экземпляра сопоставителя.
30 ObjectMapper configure(SerializationFeature f, boolean state) - Метод изменения состояния включения / выключения функции сериализации для этого сопоставителя объектов.
31 год JavaType constructType(Type t) - Удобный метод построения JavaType из заданного типа (обычно java.lang.Class), но без явного контекста.
32 <T> T convertValue(Object fromValue, Class<T> toValueType) - Удобный метод для выполнения двухэтапного преобразования из заданного значения в экземпляр заданного типа значения, если (но только если!) Преобразование необходимо.
33 <T> T convertValue(Object fromValue, JavaType toValueType) - См. ConvertValue (Объект, Класс)
34 <T> T convertValue(Object fromValue, TypeReference<?> toValueTypeRef) - См. ConvertValue (Объект, Класс)
35 год ObjectMapper copy() - Метод создания нового экземпляра ObjectMapper, имеющего ту же начальную конфигурацию, что и этот экземпляр.
36 ArrayNode createArrayNode() - Примечание: тип возвращаемого значения является ковариантным, поскольку базовая абстракция ObjectCodec не может ссылаться на конкретные типы узлов (поскольку это часть основного пакета, тогда как impls - часть пакета mapper)
37 ObjectNode createObjectNode() - Примечание: тип возвращаемого значения является ковариантным, поскольку базовая абстракция ObjectCodec не может ссылаться на конкретные типы узлов (поскольку это часть основного пакета, тогда как impls - часть пакета mapper)
38 protected ClassIntrospector defaultClassIntrospector() - Переопределяемый вспомогательный метод, используемый для создания используемого ClassIntrospector по умолчанию.
39 ObjectMapper disable(DeserializationFeature feature) - Метод включения указанных функций DeserializationConfig.
40 ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f) - Метод включения указанных функций DeserializationConfig.
41 год ObjectMapper disable(JsonGenerator.Feature... features) - Метод отключения указанного JsonGenerator.Features для экземпляров парсера, создаваемых этим сопоставителем объектов.
42 ObjectMapper disable(JsonParser.Feature... features) - Метод отключения указанных JsonParser.Features для экземпляров парсера, создаваемых этим сопоставителем объектов.
43 год ObjectMapper disable(MapperFeature... f) - Метод включения указанных функций DeserializationConfig.
44 ObjectMapper disable(SerializationFeature f) - Метод включения указанных функций DeserializationConfig.
45 ObjectMapper disable(SerializationFeature first, SerializationFeature... f) - Метод включения указанных функций DeserializationConfig.
46 ObjectMapper disableDefaultTyping()- Метод отключения автоматического включения информации о типе; в этом случае только явно аннотированные типы (с JsonTypeInfo) будут иметь дополнительную информацию о встроенном типе.
47 ObjectMapper enable(DeserializationFeature feature) - Метод включения указанных функций DeserializationConfig.
48 ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f) - Метод включения указанных функций DeserializationConfig.
49 ObjectMapper enable(JsonGenerator.Feature... features) - Метод включения указанного JsonGenerator.Features для экземпляров парсера, создаваемых этим сопоставителем объектов.
50 ObjectMapper enable(JsonParser.Feature... features) - Метод включения указанных JsonParser.Features для экземпляров парсера, создаваемых этим сопоставителем объектов.
51 ObjectMapper enable(MapperFeature... f) - Метод включения указанных функций MapperConfig.
52 ObjectMapper enable(SerializationFeature f) - Метод включения указанной функции DeserializationConfig.
53 ObjectMapper enable(SerializationFeature first, SerializationFeature... f) - Метод включения указанных функций DeserializationConfig.
54 ObjectMapper enableDefaultTyping() - Удобный метод, эквивалентный вызову
55 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti) - Удобный метод, эквивалентный вызову
56 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs) - Метод включения автоматического включения информации о типе, необходимой для правильной десериализации полиморфных типов (если типы не были аннотированы с помощью JsonTypeInfo).
57 ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName) - Метод включения автоматического включения информации о типе - необходим для правильной десериализации полиморфных типов (если типы не были аннотированы с помощью JsonTypeInfo) - с использованием механизма включения «As.PROPERTY» и указанного имени свойства для использования для включения (по умолчанию "@ class ", поскольку информация о типе по умолчанию всегда использует имя класса в качестве идентификатора типа)
58 ObjectMapper findAndRegisterModules() - Удобный метод, функционально эквивалентный: mapper.registerModules (mapper.findModules ());
59 Class<?> findMixInClassFor(Class<?> cls)
60 static List<Module> findModules() - Метод поиска доступных методов с использованием средства JDK ServiceLoader вместе с предоставляемым модулем SPI.
61 static List<Module> findModules(ClassLoader classLoader) - Метод поиска доступных методов с использованием средства JDK ServiceLoader вместе с предоставляемым модулем SPI.
62 DateFormat getDateFormat()
63 DeserializationConfig getDeserializationConfig() - Метод, который возвращает общий объект DeserializationConfig по умолчанию, который определяет параметры конфигурации для десериализации.
64 DeserializationContext getDeserializationContext() - Метод получения текущего контекста десериализации.
65 JsonFactory getFactory() - Метод, который можно использовать для получения JsonFactory, который использует этот сопоставитель, если ему нужно создать JsonParsers и / или JsonGenerators.
66 InjectableValues getInjectableValues()
67 JsonFactory getJsonFactory()- Устарело. Начиная с версии 2.1: используйте getFactory () вместо
68 JsonNodeFactory getNodeFactory() - Метод, который можно использовать для получения JsonNodeFactory, который этот преобразователь будет использовать при непосредственном создании корневых экземпляров JsonNode для деревьев.
69 PropertyNamingStrategy getPropertyNamingStrategy()
70 SerializationConfig getSerializationConfig() - Метод, который возвращает общий объект SerializationConfig по умолчанию, который определяет параметры конфигурации для сериализации.
71 SerializerFactory getSerializerFactory() - Метод получения текущего SerializerFactory.
72 SerializerProvider getSerializerProvider() - Аксессор для экземпляра «blueprint» (или фабрики), из которого создаются экземпляры путем вызова DefaultSerializerProvider.createInstance (com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory).
73 SerializerProvider getSerializerProviderInstance() - Аксессор для создания и возврата экземпляра SerializerProvider, который может использоваться для доступа к сериализаторам.
74 SubtypeResolver getSubtypeResolver() - Метод доступа к используемому преобразователю подтипа.
75 TypeFactory getTypeFactory() - Аксессор для получения текущего настроенного экземпляра TypeFactory.
76 VisibilityChecker<?> getVisibilityChecker()- Метод доступа к текущему настроенному средству проверки видимости; объект, используемый для определения, может ли данный элемент свойства (метод, поле, конструктор) быть обнаружен автоматически или нет.
77 boolean isEnabled(DeserializationFeature f) - Метод проверки, включена ли данная особенность десериализации.
78 boolean isEnabled(JsonFactory.Feature f) - Метод удобства, эквивалентный:
79 boolean isEnabled(JsonGenerator.Feature f)
80 boolean isEnabled(JsonParser.Feature f)
81 год boolean isEnabled(MapperFeature f) - Метод проверки, включен ли данный MapperFeature.
82 boolean isEnabled(SerializationFeature f) - Метод проверки, включена ли данная особенность сериализации.
83 int mixInCount()
84 ObjectReader reader() - Заводской метод построения ObjectReader с настройками по умолчанию.
85 ObjectReader reader(Base64Variant defaultBase64) - Заводской метод создания ObjectReader, который будет использовать указанный вариант кодировки Base64 для двоичных данных в кодировке Base64.
86 ObjectReader reader(Class<?> type)- Устарело. Начиная с версии 2.5, используйте readerFor (Class) вместо
87 ObjectReader reader(ContextAttributes attrs) - Заводской метод для создания ObjectReader, который будет использовать указанные атрибуты по умолчанию.
88 ObjectReader reader(DeserializationFeature feature) - Заводской метод создания ObjectReader с включенной указанной функцией (по сравнению с настройками, которые имеет этот экземпляр сопоставителя).
89 ObjectReader reader(DeserializationFeature first, DeserializationFeature... other) - Заводской метод создания ObjectReader с включенными указанными функциями (по сравнению с настройками, которые имеет этот экземпляр сопоставителя).
90 ObjectReader reader(FormatSchema schema) - Заводской метод для создания ObjectReader, который будет передавать определенный объект схемы в JsonParser, используемый для чтения содержимого.
91 ObjectReader reader(InjectableValues injectableValues) - Заводской метод построения ObjectReader, который будет использовать указанные вводимые значения.
92 ObjectReader reader(JavaType type)- Устарело. Начиная с версии 2.5, используйте readerFor (JavaType) вместо
93 ObjectReader reader(JsonNodeFactory f) - Заводской метод построения ObjectReader, который будет использовать указанный JsonNodeFactory для построения деревьев JSON.
94 ObjectReader reader(TypeReference<?> type)- Устарело. Начиная с версии 2.5, используйте readerFor (TypeReference) вместо
95 ObjectReader readerFor(Class<?> type) - Заводской метод создания ObjectReader, который будет читать или обновлять экземпляры указанного типа
96 ObjectReader readerFor(JavaType type) - Заводской метод создания ObjectReader, который будет читать или обновлять экземпляры указанного типа
97 ObjectReader readerFor(TypeReference<?> type) - Заводской метод создания ObjectReader, который будет читать или обновлять экземпляры указанного типа
98 ObjectReader readerForUpdating(Object valueToUpdate) - Заводской метод для создания ObjectReader, который обновит данный объект (обычно Bean, но также может быть коллекцией или картой, но НЕ массивом) данными JSON.
99 ObjectReader readerWithView(Class<?> view) - Заводской метод для создания ObjectReader, который будет десериализовать объекты с использованием указанного JSON View (фильтра).
100 JsonNode readTree(byte[] content) - Метод десериализации содержимого JSON в виде дерева, выраженного с использованием набора экземпляров JsonNode.
101 JsonNode readTree(File file) - Метод десериализации содержимого JSON в виде дерева, выраженного с использованием набора экземпляров JsonNode.
102 JsonNode readTree(InputStream in) - Метод десериализации содержимого JSON в виде дерева, выраженного с использованием набора экземпляров JsonNode.
103 <T extends TreeNode> T readTree(JsonParser p) - Метод десериализации содержимого JSON в виде дерева, выраженного с использованием набора экземпляров JsonNode.
104 JsonNode readTree(Reader r) - Метод десериализации содержимого JSON в виде дерева, выраженного с использованием набора экземпляров JsonNode.
105 JsonNode readTree(String content) - Метод десериализации содержимого JSON в виде дерева, выраженного с использованием набора экземпляров JsonNode.
106 JsonNode readTree(URL source) - Метод десериализации содержимого JSON в виде дерева, выраженного с использованием набора экземпляров JsonNode.
107 <T> T readValue(byte[] src, Class<T> valueType)
108 <T> T readValue(byte[] src, int offset, int len, Class<T> valueType)
109 <T> T readValue(byte[] src, int offset, int len, JavaType valueType)
110 <T> T readValue(byte[] src, int offset, int len, TypeReference valueTypeRef)
111 <T> T readValue(byte[] src, JavaType valueType)
112 <T> T readValue(byte[] src, TypeReference valueTypeRef)
113 <T> T readValue(DataInput src, Class<T> valueType)
114 <T> T readValue(DataInput src, JavaType valueType)
115 <T> T readValue(File src, Class<T> valueType) - Метод десериализации содержимого JSON из данного файла в заданный тип Java.
116 <T> T readValue(File src, JavaType valueType) - Метод десериализации содержимого JSON из данного файла в заданный тип Java.
117 <T> T readValue(File src, TypeReference valueTypeRef) - Метод десериализации содержимого JSON из данного файла в заданный тип Java.
118 <T> T readValue(InputStream src, Class<T> valueType)
119 <T> T readValue(InputStream src, JavaType valueType)
120 <T> T readValue(InputStream src, TypeReference valueTypeRef)
121 <T> T readValue(JsonParser p, Class<T> valueType) - Method to deserialize JSON content into a non-container type (it can be an array type, however): typically a bean, array or a wrapper type (like Boolean).
122 <T> T readValue(JsonParser p, JavaType valueType) - Типобезопасный перегруженный метод, в основном псевдоним для readValue (JsonParser, Class).
123 <T> T readValue(JsonParser p, ResolvedType valueType) - Метод десериализации содержимого JSON в тип Java, ссылка на который передается в качестве аргумента.
124 <T> T readValue(JsonParser p, TypeReference<?> valueTypeRef) - Метод десериализации содержимого JSON в тип Java, ссылка на который передается в качестве аргумента.
125 <T> T readValue(Reader src, Class<T> valueType) -
1 <T> T readValue(Reader src, JavaType valueType)
126 <T> T readValue(Reader src, TypeReference valueTypeRef)
127 <T> T readValue(String content, Class<T> valueType) - Метод десериализации содержимого JSON из заданной строки содержимого JSON.
128 <T> T readValue(String content, JavaType valueType) - Метод десериализации содержимого JSON из заданной строки содержимого JSON.
129 <T> T readValue(String content, TypeReference valueTypeRef) - Метод десериализации содержимого JSON из заданной строки содержимого JSON.
130 <T> T readValue(URL src, Class<T> valueType) - Метод десериализации содержимого JSON из данного ресурса в заданный тип Java.
131 <T> T readValue(URL src, JavaType valueType)
132 <T> T readValue(URL src, TypeReference valueTypeRef) - Метод десериализации содержимого JSON из данного ресурса в заданный тип Java.
133 <T> MappingIterator<T> readValues(JsonParser p, Class<T> valueType) - Удобный метод, эквивалентный по функциям:
134 <T> MappingIterator<T> readValues(JsonParser p, JavaType valueType) - Удобный метод, эквивалентный по функциям:
135 <T> MappingIterator<T> readValues(JsonParser p, ResolvedType valueType) - Удобный метод, эквивалентный по функциям:
136 <T> MappingIterator<T> readValues(JsonParser p, TypeReference<?>valueTypeRef) - Метод чтения последовательности объектов из потока парсера.
137 ObjectMapper registerModule(Module module)- Метод регистрации модуля, который может расширять функциональность, предоставляемую этим маппером; например, добавляя поставщиков для настраиваемых сериализаторов и десериализаторов.
138 ObjectMapper registerModules(Iterable<Module> modules)- Удобный метод регистрации указанных модулей в заказе; функционально эквивалентен:
139 ObjectMapper registerModules(Module... modules)- Удобный метод регистрации указанных модулей в заказе; функционально эквивалентен:
140 void registerSubtypes(NamedType... types) - Метод регистрации указанного класса в качестве подтипа, чтобы разрешение на основе имени типа могло связывать супертипы с подтипами (в качестве альтернативы использованию аннотаций).
141 ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) - Метод настройки AnnotationIntrospector, используемого этим экземпляром сопоставителя как для сериализации, так и для десериализации.
142 ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) - Метод изменения экземпляров AnnotationIntrospector, используемых этим экземпляром сопоставителя для сериализации и десериализации, указав их по отдельности, чтобы для разных аспектов можно было использовать различную интроспекцию.
143 ObjectMapper setBase64Variant(Base64Variant v) - Метод, который настроит Base64Variant по умолчанию, который будут использовать сериализаторы и десериализаторы byte [].
144 ObjectMapper setConfig(DeserializationConfig config) - Метод, позволяющий переопределить базовый объект DeserializationConfig.
145 ObjectMapper setConfig(SerializationConfig config) - Метод, позволяющий переопределить базовый объект SerializationConfig, который содержит параметры конфигурации, специфичные для сериализации.
146 ObjectMapper setDateFormat(DateFormat dateFormat) - Метод настройки DateFormat по умолчанию для использования при сериализации значений времени в виде строк и десериализации из строк JSON.
147 ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp) - Метод для указания PrettyPrinter, который будет использоваться при включении "красивой печати по умолчанию" (путем включения SerializationFeature.INDENT_OUTPUT)
148 ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer) - Метод для включения автоматического включения информации о типе с использованием указанного объекта-обработчика для определения, на какие типы это влияет, а также подробностей о том, как внедряется информация.
149 ObjectMapper setFilterProvider(FilterProvider filterProvider) - Метод настройки этого сопоставителя для использования указанного FilterProvider для сопоставления идентификаторов фильтров с фактическими экземплярами фильтров.
150 Object setHandlerInstantiator(HandlerInstantiator hi) - Метод настройки HandlerInstantiator для использования для создания экземпляров обработчиков (таких как сериализаторы, десериализаторы, преобразователи типа и идентификатора типа) с учетом класса.
151 ObjectMapper setInjectableValues(InjectableValues injectableValues) - Метод настройки InjectableValues, который используется для поиска значений для инъекции.
152 ObjectMapper setLocale(Locale l) - Метод переопределения локали по умолчанию для использования при форматировании.
153 void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins)- Устарело. Начиная с версии 2.5: заменен беглой формой метода; setMixIns (java.util.Map <java.lang.Class <?>, java.lang.Class <? >>).
154 ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - Метод, который может быть вызван, чтобы указать заданный преобразователь для определения местоположения смешанных классов для использования, переопределяя напрямую добавленные сопоставления.
155 ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins) - Метод, используемый для определения смешанных аннотаций, используемых для дополнения аннотаций, которые имеют обрабатываемые (сериализуемые / десериализуемые) классы.
156 ObjectMapper setNodeFactory(JsonNodeFactory f) - Метод указания JsonNodeFactory для использования для построения узлов дерева корневого уровня (с помощью метода createObjectNode ()
157 ObjectMapper setPropertyInclusion(JsonInclude.Value incl) - Метод установки стратегии включения свойств POJO по умолчанию для сериализации.
158 ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s) - Метод установки стратегии именования пользовательских свойств для использования.
159 ObjectMapper setSerializationInclusion(JsonInclude.Include incl) - Удобный метод, эквивалентный вызову:
160 ObjectMapper setSerializerFactory(SerializerFactory f) - Метод настройки конкретного SerializerFactory, который будет использоваться для создания (bean) сериализаторов.
161 ObjectMapper setSerializerProvider(DefaultSerializerProvider p) - Метод установки экземпляра «blueprint» SerializerProvider для использования в качестве основы для фактических экземпляров поставщика, используемых для обработки кэширования экземпляров JsonSerializer.
162 ObjectMapper setSubtypeResolver(SubtypeResolver str) - Метод установки пользовательского преобразователя подтипа для использования.
163 ObjectMapper setTimeZone(TimeZone tz) - Метод переопределения часового пояса по умолчанию для использования при форматировании.
164 ObjectMapper setTypeFactory(TypeFactory f) - Метод, который можно использовать для переопределения экземпляра TypeFactory, используемого этим сопоставителем.
165 ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility) - Удобный метод, позволяющий изменять конфигурацию базовых VisibilityCheckers, чтобы изменять детали того, какие типы свойств обнаруживаются автоматически.
166 ObjectMapper setVisibility(VisibilityChecker<?> vc) - Метод для настройки текущего настроенного VisibilityChecker, объекта, используемого для определения, может ли данный элемент свойства (метод, поле, конструктор) быть автоматически обнаружен или нет.
167 void setVisibilityChecker(VisibilityChecker<?> vc)- Устарело. Начиная с версии 2.6 вместо этого используйте setVisibility (VisibilityChecker).
168 JsonParser treeAsTokens(TreeNode n) - Метод построения JsonParser из представления дерева JSON.
169 <T> T treeToValue(TreeNode n, Class<T> valueType) - Удобный метод преобразования, который привяжет данные, содержащиеся в дереве JSON, к определенному типу значения (обычно bean).
170 <T extends JsonNode> T valueToTree(Object fromValue)- Инверсия treeToValue (com.fasterxml.jackson.core.TreeNode, java.lang.Class <T>); учитывая значение (обычно bean), будет построено эквивалентное представление дерева JSON.
171 Version version() - Метод, который будет возвращать информацию о версии, хранящуюся и считываемую из jar-файла, содержащего этот класс.
172 ObjectWriter writer() - Удобный метод построения ObjectWriter с настройками по умолчанию.
173 ObjectWriter writer(Base64Variant defaultBase64) - Заводской метод создания ObjectWriter, который будет использовать указанный вариант кодировки Base64 для двоичных данных в кодировке Base64.
174 ObjectWriter writer(CharacterEscapes escapes) -
175 ObjectWriter writer(ContextAttributes attrs) - Заводской метод для создания ObjectWriter, который будет использовать указанные атрибуты по умолчанию.
176 ObjectWriter writer(DateFormat df)- Заводской метод построения ObjectWriter, который будет сериализовать объекты с использованием указанного DateFormat; или, если передано значение null, с использованием отметки времени (64-битное число.
177 ObjectWriter writer(FilterProvider filterProvider) - Заводской метод для создания ObjectWriter, который будет сериализовать объекты с использованием указанного поставщика фильтров.
178 ObjectWriter writer(FormatSchema schema) - Заводской метод для создания ObjectWriter, который будет передавать конкретный объект схемы в JsonGenerator, используемый для записи контента.
179 ObjectWriter writer(PrettyPrinter pp) - Заводской метод для создания ObjectWriter, который будет сериализовать объекты, используя указанный симпатичный принтер для отступов (или, если null, нет красивого принтера)
180 ObjectWriter writer(SerializationFeature feature) - Заводской метод создания ObjectWriter с включенной указанной функцией (по сравнению с настройками, которые имеет этот экземпляр сопоставителя).
181 ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - Заводской метод создания ObjectWriter с включенными указанными функциями (по сравнению с настройками этого экземпляра сопоставителя).
182 ObjectWriter writerFor(Class<?> rootType) - Заводской метод для создания ObjectWriter, который будет сериализовать объекты с использованием указанного корневого типа вместо фактического типа значения во время выполнения.
183 ObjectWriter writerFor(JavaType rootType) - Заводской метод для создания ObjectWriter, который будет сериализовать объекты с использованием указанного корневого типа вместо фактического типа значения во время выполнения.
184 ObjectWriter writerFor(TypeReference<?> rootType) - Заводской метод для создания ObjectWriter, который будет сериализовать объекты с использованием указанного корневого типа вместо фактического типа значения во время выполнения.
185 ObjectWriter writerWithDefaultPrettyPrinter() - Заводской метод для создания ObjectWriter, который будет сериализовать объекты, используя красивый принтер по умолчанию для отступов.
186 ObjectWriter writerWithType(Class<?> rootType)- Устарело. Начиная с версии 2.5, используйте вместо этого writerFor (Class).
187 ObjectWriter writerWithType(JavaType rootType)- Устарело. Начиная с версии 2.5, используйте вместо этого writerFor (JavaType).
188 ObjectWriter writerWithType(TypeReference<?> rootType)- Устарело. Начиная с версии 2.5, используйте вместо этого writerFor (TypeReference).
189 ObjectWriter writerWithView(Class<?> serializationView) - Заводской метод для создания ObjectWriter, который будет сериализовать объекты с использованием указанного JSON View (фильтра).
190 void writeTree(JsonGenerator jgen, JsonNode rootNode) - Метод сериализации данного дерева JSON с использованием предоставленного генератора.
191 void writeTree(JsonGenerator jgen, TreeNode rootNode)
192 void writeValue(DataOutput out, Object value)
193 void writeValue(File resultFile, Object value) - Метод, который можно использовать для сериализации любого значения Java в виде вывода JSON, записанного в предоставленный файл.
194 void writeValue(JsonGenerator g, Object value) - Метод, который можно использовать для сериализации любого значения Java в виде выходных данных JSON с использованием предоставленного JsonGenerator.
195 void writeValue(OutputStream out, Object value) - Метод, который можно использовать для сериализации любого значения Java в виде вывода JSON с использованием предоставленного потока вывода (с использованием кодировки JsonEncoding.UTF8).
196 void writeValue(Writer w, Object value) - Метод, который можно использовать для сериализации любого значения Java в виде вывода JSON с использованием предоставленного Writer.
197 byte[] writeValueAsBytes(Object value) - Метод, который можно использовать для сериализации любого значения Java в виде массива байтов.
198 String writeValueAsString(Object value) - Метод, который можно использовать для сериализации любого значения Java в виде строки.

Методы унаследованные

Этот класс наследует методы от следующих классов:

  • java.lang.Object

ObjectMapper Пример

Создайте следующую программу Java, используя любой редактор по вашему выбору, например C:/> Jackson_WORKSPACE

Файл: JacksonTester.java

import java.io.IOException;

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

public class JacksonTester {
   public static void main(String args[]){
   
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      
      //map json to student
      try{
         Student student = mapper.readValue(jsonString, Student.class);
         
         System.out.println(student);
         
         jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
         
         System.out.println(jsonString);
      }
      catch (JsonParseException e) { e.printStackTrace();}
      catch (JsonMappingException e) { e.printStackTrace(); }
      catch (IOException e) { e.printStackTrace(); }
   }
}

class Student {
   private String name;
   private int age;
   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 "Student [ name: "+name+", age: "+ age+ " ]";
   }
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}

Сериализация объекта

давайте сериализуем объект java в файл json, а затем прочитаем этот файл json, чтобы вернуть объект. В этом примере мы создали класс Student. Мы создадим файл student.json, который будет иметь json-представление объекта Student.

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

Файл: JacksonTester.java

import java.io.File;
import java.io.IOException;

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

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         Student student = new Student();
         student.setAge(10);
         student.setName("Mahesh");
         tester.writeJSON(student);

         Student student1 = tester.readJSON();
         System.out.println(student1);

      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   private void writeJSON(Student student) throws JsonGenerationException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();	
      mapper.writeValue(new File("student.json"), student);
   }

   private Student readJSON() throws JsonParseException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();
      Student student = mapper.readValue(new File("student.json"), Student.class);
      return student;
   }
}

class Student {
   private String name;
   private int age;
   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 "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

Student [ name: Mahesh, age: 10 ]

Связывание данных

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

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

  • Full Data Binding - Преобразует JSON в любой тип JAVA и обратно.

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

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

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

Sr. No. Тип JSON Тип Java
1 объект LinkedHashMap <строка, объект>
2 массив ArrayList <объект>
3 строка Строка
4 полный номер Целое, длинное или большое целое число
5 дробное число Двойное / BigDecimal
6 правда | ложный Булево
7 ноль ноль

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

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

Файл: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

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

public class 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 student = new Student();
            student.setAge(10);
            student.setName("Mahesh");
            // JAVA Object
            studentDataMap.put("student", student);
            // JAVA String
            studentDataMap.put("name", "Mahesh Kumar");   		
            // JAVA Boolean
            studentDataMap.put("verified", Boolean.FALSE);
            // Array
            studentDataMap.put("marks", marks);

            mapper.writeValue(new File("student.json"), studentDataMap);
            //result student.json
			//{ 
            //   "student":{"name":"Mahesh","age":10},
            //   "marks":[1,2,3],
            //   "verified":false,
            //   "name":"Mahesh Kumar"
            //}
            studentDataMap = mapper.readValue(new File("student.json"), Map.class);

            System.out.println(studentDataMap.get("student"));
            System.out.println(studentDataMap.get("name"));
            System.out.println(studentDataMap.get("verified"));
            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;
   private int age;
   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 "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

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

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

Полная привязка данных относится к сопоставлению JSON с любым объектом JAVA.

//Create an ObjectMapper instance
ObjectMapper mapper = new ObjectMapper();	
//map JSON content to Student object
Student student = mapper.readValue(new File("student.json"), Student.class);
//map Student object to JSON content
mapper.writeValue(new File("student.json"), student);

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

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

Файл: JacksonTester.java

import java.io.File;
import java.io.IOException;

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

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         Student student = new Student();
         student.setAge(10);
         student.setName("Mahesh");
         tester.writeJSON(student);

         Student student1 = tester.readJSON();
         System.out.println(student1);

      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   private void writeJSON(Student student) throws JsonGenerationException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();	
      mapper.writeValue(new File("student.json"), student);
   }

   private Student readJSON() throws JsonParseException, JsonMappingException, IOException{
      ObjectMapper mapper = new ObjectMapper();
      Student student = mapper.readValue(new File("student.json"), Student.class);
      return student;
   }
}

class Student {
   private String name;
   private int age;
   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 "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

Student [ name: Mahesh, age: 10 ]

Связывание данных с помощью Generics

В простом связывании данных мы использовали класс Map, который использует String как ключ и Object как объект значения. Вместо этого у нас может быть конкретный объект java и приведение его типа для использования в привязке JSON.

Рассмотрим следующий пример с классом UserData, классом для хранения пользовательских данных.

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

Файл: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

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

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
         try {
            ObjectMapper mapper = new ObjectMapper();

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

            Student student = new Student();
            student.setAge(10);
            student.setName("Mahesh");
            // JAVA Object
            studentData.setStudent(student);
            // JAVA String
            studentData.setName("Mahesh Kumar");
            // JAVA Boolean
            studentData.setVerified(Boolean.FALSE);
            // Array
            studentData.setMarks(marks);
            TypeReference ref = new TypeReference<Map<String,UserData>>() { };
            userDataMap.put("studentData1", studentData);
            mapper.writeValue(new File("student.json"), userDataMap);
            //{
            //   "studentData1":
            //	 {
            //		"student":
            //		{
            //			"name":"Mahesh",
            //			"age":10
            //      },
            //      "name":"Mahesh Kumar",
            //      "verified":false,
            //      "marks":[1,2,3]
            //   }
            //}
            userDataMap = mapper.readValue(new 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;
   private int age;
   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 "Student [ name: "+name+", age: "+ age+ " ]";
   }	
}

class UserData {
   private Student student;
   private String name;
   private Boolean verified;
   private int[] marks;

   public UserData(){}

   public Student getStudent() {
      return student;
   }
   public void setStudent(Student student) {
      this.student = 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;
   }		
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

Student [ name: Mahesh, age: 10 ]
Mahesh Kumar
false
[1, 2, 3]

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

Модель дерева подготавливает древовидное представление документа 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

import java.io.IOException;
import 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;

public class JacksonTester {
   public static void main(String args[]){

      try {
         ObjectMapper mapper = new ObjectMapper();
         String jsonString = "{\"name\":\"Mahesh Kumar\",  \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
         JsonNode rootNode = mapper.readTree(jsonString);

         JsonNode nameNode = rootNode.path("name");
         System.out.println("Name: "+ nameNode.textValue());

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

         JsonNode verifiedNode = rootNode.path("verified");
         System.out.println("Verified: " + (verifiedNode.booleanValue() ? "Yes":"No"));

         JsonNode marksNode = rootNode.path("marks");
         Iterator<JsonNode> iterator = marksNode.elements();
         System.out.print("Marks: [ ");

         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(); }
   }
}

Verify the result

Скомпилируйте классы, используя 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

В этом примере мы создали дерево с помощью JsonNode, записали его в файл json и прочитали обратно.

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

Файл: JacksonTester.java

import java.io.IOException;
import 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;

public class JacksonTester {
   public static void main(String args[]){

      try {
         ObjectMapper mapper = new ObjectMapper();
         String jsonString = "{\"name\":\"Mahesh Kumar\",  \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
         JsonNode rootNode = mapper.readTree(jsonString);

         JsonNode nameNode = rootNode.path("name");
         System.out.println("Name: "+ nameNode.textValue());

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

         JsonNode verifiedNode = rootNode.path("verified");
         System.out.println("Verified: " + (verifiedNode.booleanValue() ? "Yes":"No"));

         JsonNode marksNode = rootNode.path("marks");
         Iterator<JsonNode> iterator = marksNode.elements();
         System.out.print("Marks: [ ");

         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(); }
   }
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

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

Дерево в объекты Java

В этом примере мы создали дерево с помощью JsonNode, записали его в файл json и прочитали дерево, а затем преобразовали его как объект Student.

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

Файл: JacksonTester.java

import java.io.File;
import java.io.IOException;
import 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;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {
         ObjectMapper mapper = new ObjectMapper();

         JsonNode rootNode = mapper.createObjectNode();
         JsonNode marksNode = mapper.createArrayNode();
         ((ArrayNode)marksNode).add(100);
         ((ArrayNode)marksNode).add(90);
         ((ArrayNode)marksNode).add(85);
         ((ObjectNode) rootNode).put("name", "Mahesh Kumar");
         ((ObjectNode) rootNode).put("age", 21);
         ((ObjectNode) rootNode).put("verified", false);
         ((ObjectNode) rootNode).put("marks",marksNode);

         mapper.writeValue(new File("student.json"), rootNode);

         rootNode = mapper.readTree(new File("student.json"));

         Student student = mapper.treeToValue(rootNode, Student.class);

         System.out.println("Name: "+ student.getName());
         System.out.println("Age: " + student.getAge());
         System.out.println("Verified: " + (student.isVerified() ? "Yes":"No"));
         System.out.println("Marks: "+Arrays.toString(student.getMarks()));
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}
class Student {
   String name;
   int age;
   boolean verified;
   int[] marks;
   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 boolean isVerified() {
      return verified;
   }
   public void setVerified(boolean verified) {
      this.verified = verified;
   }
   public int[] getMarks() {
      return marks;
   }
   public void setMarks(int[] marks) {
      this.marks = marks;
   }
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

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

Потоковый API

Streaming API считывает и записывает содержимое JSON как отдельные события. JsonParser читает данные, тогда как JsonGenerator записывает данные. Это самый мощный из трех подходов с наименьшими накладными расходами и самым быстрым в операциях чтения / записи. Это аналог парсера Stax для XML.

В этой статье мы продемонстрируем использование потоковых API Джексона для чтения и записи данных JSON. Streaming API работает с концепцией токена, и все детали Json должны обрабатываться осторожно. Ниже приведены два класса, которые мы будем использовать в примерах:

  • JsonGenerator - Запись в строку JSON.

  • JsonParser - Разобрать строку JSON.

Написание JSON с использованием JsonGenerator

Использовать JsonGenerator довольно просто. Сначала создайте JsonGenerator с помощью метода JsonFactory.createJsonGenerator () и используйте его методы write *** () для записи каждого значения json.

JsonFactory jsonFactory = new JsonFactory();
JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File(
   "student.json"), JsonEncoding.UTF8);
// {
jsonGenerator.writeStartObject();
// "name" : "Mahesh Kumar"
jsonGenerator.writeStringField("name", "Mahesh Kumar");

Давайте посмотрим, как работает JsonGenerator. Создайте файл класса java с именем JacksonTester вC:\>Jackson_WORKSPACE.

Файл: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Map;

import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){

      try {         
         JsonFactory jsonFactory = new JsonFactory();
         JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File("student.json"), JsonEncoding.UTF8);

         jsonGenerator.writeStartObject();

         // "name" : "Mahesh Kumar"
         jsonGenerator.writeStringField("name", "Mahesh Kumar"); 

         // "age" : 21
         jsonGenerator.writeNumberField("age", 21);

         // "verified" : false
         jsonGenerator.writeBooleanField("verified", false);

         // "marks" : [100, 90, 85]
         jsonGenerator.writeFieldName("marks"); 

         // [
         jsonGenerator.writeStartArray(); 
         // 100, 90, 85
         jsonGenerator.writeNumber(100); 
         jsonGenerator.writeNumber(90); 
         jsonGenerator.writeNumber(85); 
         // ]

         jsonGenerator.writeEndArray(); 

         jsonGenerator.writeEndObject(); 
         jsonGenerator.close();        

         //result student.json
         //{ 
         //   "name":"Mahesh Kumar",
         //   "age":21,
         //   "verified":false,
         //   "marks":[100,90,85]
         //}

         ObjectMapper mapper = new ObjectMapper();
         Map<String,Object> dataMap = mapper.readValue(new File("student.json"), Map.class);

         System.out.println(dataMap.get("name"));
         System.out.println(dataMap.get("age"));
         System.out.println(dataMap.get("verified"));
         System.out.println(dataMap.get("marks"));
      } 
      catch (JsonParseException e) { e.printStackTrace(); } 
      catch (JsonMappingException e) { e.printStackTrace(); } 
      catch (IOException e) { e.printStackTrace(); }
   }
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

Mahesh Kumar
21
false
[100, 90, 85]

Чтение JSON с помощью JsonParser

Использовать JsonParser снова довольно просто. Сначала создайте JsonParser с помощью метода JsonFactory.createJsonParser () и используйте его методы nextToken () для чтения каждой строки json как токена. Проверьте каждый токен и обработайте его соответствующим образом

JsonFactory jasonFactory = new JsonFactory();
JsonParser jsonParser = jasonFactory.createJsonParser(new File("student.json"));
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
   //get the current token
   String fieldname = jsonParser.getCurrentName();
   if ("name".equals(fieldname)) {
      //move to next token
      jsonParser.nextToken();
      System.out.println(jsonParser.getText());        	 
   }
}

Давайте посмотрим, как работает JsonParser. Создайте файл класса java с именем JacksonTester вC:\>Jackson_WORKSPACE.

Файл: JacksonTester.java

import java.io.File;
import java.io.IOException;
import java.util.Map;

import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonTester {
   public static void main(String args[]){
      JacksonTester tester = new JacksonTester();
      try {        	
         JsonFactory jsonFactory = new JsonFactory();

         JsonGenerator jsonGenerator = jsonFactory.createGenerator(new File(
            "student.json"), JsonEncoding.UTF8);
         jsonGenerator.writeStartObject();
         jsonGenerator.writeStringField("name", "Mahesh Kumar"); 
         jsonGenerator.writeNumberField("age", 21);
         jsonGenerator.writeBooleanField("verified", false); 
         jsonGenerator.writeFieldName("marks"); 
         jsonGenerator.writeStartArray(); // [
         jsonGenerator.writeNumber(100); 
         jsonGenerator.writeNumber(90); 
         jsonGenerator.writeNumber(85); 
         jsonGenerator.writeEndArray(); 
         jsonGenerator.writeEndObject(); 
         jsonGenerator.close();       	 

         //result student.json
         //{ 
         //   "name":"Mahesh Kumar",
         //   "age":21,
         //   "verified":false,
         //   "marks":[100,90,85]
         //}

         JsonParser jsonParser = jsonFactory.createParser(new File("student.json"));
         while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
            //get the current token
            String fieldname = jsonParser.getCurrentName();
            if ("name".equals(fieldname)) {
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getText());        	 
            }
            if("age".equals(fieldname)){
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getNumberValue());        	 
            }
            if("verified".equals(fieldname)){
               //move to next token
               jsonParser.nextToken();
               System.out.println(jsonParser.getBooleanValue());        	 
            }
            if("marks".equals(fieldname)){
               //move to [ 
               jsonParser.nextToken();
               // loop till token equal to "]"
               while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
                  System.out.println(jsonParser.getNumberValue()); 
               }
            }
         }
      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Verify the result

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

C:\Jackson_WORKSPACE>javac JacksonTester.java

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

C:\Jackson_WORKSPACE>java JacksonTester

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

Mahesh Kumar
21
false
[100, 90, 85]

Класс JsonGenerator

Введение

JsonParser - это базовый класс для определения общедоступного API для чтения содержимого Json. Экземпляры создаются с использованием фабричных методов экземпляра JsonFactory.

Объявление класса

Ниже приводится декларация для org.codehaus.jackson.JsonParser класс:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

Вложенные классы

SN Класс и описание
1 static class JsonParser.Feature
Перечисление, определяющее все переключаемые функции для парсеров.
2 static class JsonParser.NumberType
Перечисление возможных «нативных» (оптимальных) типов, которые можно использовать для чисел.

Поля

  • protected PrettyPrinter _cfgPrettyPrinter - Объект, который обрабатывает красивую печать (обычно дополнительное пустое пространство, чтобы сделать результаты более удобочитаемыми) во время вывода.

  • protected JsonToken _currToken - Последний токен, полученный через nextToken (), если есть.

  • protected int _features - Битовый флаг, состоящий из битов, указывающих, какие функции JsonParser.Features включены.

  • protected JsonToken _lastClearedToken - Последний очищенный токен, если таковой имеется: то есть значение, действовавшее при вызове clearCurrentToken ().

Конструкторы

SN Конструктор и описание
1 protected JsonParser()
Конструктор по умолчанию
2 protected JsonParser(int features)

Методы класса

SN Метод и описание
1 protected void _reportError(String msg) - Вспомогательный метод, используемый для создания и выброса исключения JsonGenerationException с заданным базовым сообщением.
2 protected void _reportUnsupportedOperation()
3 protected void _throwInternal()
4 protected void _writeSimpleObject(Object value)- Вспомогательный метод для попытки вызвать соответствующий метод записи для данного нетипизированного объекта.
5 boolean canOmitFields() - Метод самоанализа, вызываемый, чтобы проверить, можно ли опустить запись полей объекта или нет.
6 boolean canUseSchema(FormatSchema schema) - Метод, который можно использовать для проверки возможности использования данной схемы с этим генератором (с помощью setSchema (com.fasterxml.jackson.core.FormatSchema)).
7 boolean canWriteBinaryNatively()- Метод интроспекции, который может быть вызван, чтобы увидеть, поддерживает ли базовый формат данных "собственные" двоичные данные; то есть эффективный вывод двоичного содержимого без кодирования.
8 boolean canWriteObjectId() - Метод интроспекции, который может быть вызван, чтобы узнать, поддерживает ли базовый формат данных какие-либо идентификаторы объектов изначально (многие из них не поддерживают; например, JSON не поддерживает).
9 boolean canWriteTypeId() - Метод интроспекции, который может быть вызван, чтобы узнать, поддерживает ли базовый формат данных какие-либо идентификаторы типов изначально (многие из них не поддерживают; например, JSON не поддерживает).
10 abstract void close() - Метод, вызываемый для закрытия этого генератора, чтобы больше нельзя было писать контент.
11 JsonGenerator configure(JsonGenerator.Feature f, boolean state) - Метод включения или отключения указанной функции: проверьте JsonGenerator.Feature для получения списка доступных функций.
12 void copyCurrentEvent(JsonParser jp) - Метод копирования содержимого текущего события, на которое указывает данный экземпляр парсера.
13 void copyCurrentStructure(JsonParser jp) - Метод копирования содержимого текущего события и последующих событий, которые он включает в себя, на которые указывает данный экземпляр парсера.
14 abstract JsonGenerator disable(JsonGenerator.Feature f) - Method for disabling specified features (check JsonGenerator.Feature for list of features)
15 abstract JsonGenerator enable(JsonGenerator.Feature f) - Метод включения указанных функций парсера: проверьте JsonGenerator.Feature для получения списка доступных функций.
16 abstract void flush() - Метод, вызываемый для сброса любого буферизованного содержимого в базовую цель (выходной поток, средство записи), а также для очистки самой цели.
17 CharacterEscapes getCharacterEscapes() - Метод доступа к настраиваемым escape-кодам, который фабрика использует для создаваемых JsonGenerators.
18 abstract ObjectCodec getCodec() - Метод доступа к объекту, который используется для записи объекта Java как содержимого Json (с использованием метода writeObject (java.lang.Object)).
19 abstract int getFeatureMask() - Метод массового доступа для получения состояния всех стандартных JsonGenerator.Features.
20 int getHighestEscapedChar() - Метод доступа для тестирования самого высокого неэкранированного символа, настроенного для этого генератора.
21 год abstract JsonStreamContext getOutputContext()
22 Object getOutputTarget()- Метод, который можно использовать для получения доступа к объекту, который используется в качестве цели для сгенерированного вывода; Обычно это либо OutputStream, либо Writer, в зависимости от того, с каким генератором был построен.
23 PrettyPrinter getPrettyPrinter()- Аксессор для проверки, есть ли у этого генератора настроенный PrettyPrinter; возвращает его, если это так, null, если не настроено.
24 FormatSchema getSchema() - Метод доступа к схеме, которую использует этот парсер, если таковой имеется.
25 abstract boolean isClosed() - Метод, который можно вызвать, чтобы определить, закрыт ли этот генератор или нет.
26 abstract boolean isEnabled(JsonGenerator.Feature f) - Метод проверки, включена ли данная функция.
27 JsonGenerator setCharacterEscapes(CharacterEscapes esc)-Метод определения пользовательских экранирований, используемых фабрикой для JsonGenerators, которую она создает.
28 abstract JsonGenerator setCodec(ObjectCodec oc)- Метод, который можно вызвать для установки или сброса объекта, который будет использоваться для записи объектов Java как JsonContent (с использованием метода writeObject (java.lang.Object)).
29 abstract JsonGenerator setFeatureMask(int mask)-Метод массовой установки для (пере) установки состояний всех стандартных JsonGenerator.
30 JsonGenerator setHighestNonEscapedChar(int charCode) - Method that can be called to request that generator escapes all character codes above specified code point (if positive value); or, to not escape any characters except for ones that must be escaped for the data format (if -1).
31 год JsonGenerator setPrettyPrinter(PrettyPrinter pp) - Метод настройки настраиваемого красивого принтера, который обычно используется для добавления отступов для удобства чтения человеком.
32 JsonGenerator setRootValueSeparator(SerializableString sep) - Метод, позволяющий переопределить строку, используемую для разделения значений JSON корневого уровня (по умолчанию используется одинарный пробел)
33 void setSchema(FormatSchema schema) - Метод вызова, чтобы этот генератор использовал указанную схему.
33 abstract JsonGenerator useDefaultPrettyPrinter()- Удобный метод включения красивой печати с использованием симпатичного принтера по умолчанию (DefaultPrettyPrinter).
34 abstract Version version()- Аксессор для определения версии пакета, предоставившего этот экземпляр генератора.
35 год void writeArrayFieldStart(String fieldName)- Удобный метод вывода записи поля ("член") (который будет содержать значение массива JSON) и маркера START_ARRAY.
36 abstract void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)- Метод, который будет выводить заданный фрагмент двоичных данных в кодировке base64 в виде полного строкового значения (заключенного в двойные кавычки).
37 abstract int writeBinary(Base64Variant b64variant, InputStream data, int dataLength) - Метод аналогичен writeBinary (Base64Variant, byte [], int, int), но в котором ввод осуществляется через поток, что позволяет выполнять инкрементную запись без сохранения всего ввода в памяти.
38 void writeBinary(byte[] data)- Аналогично writeBinary (Base64Variant, byte [], int, int), но предполагает по умолчанию использование варианта Base64 по умолчанию Джексона (который является Base64Variants.MIME_NO_LINEFEEDS).
39 void writeBinary(byte[] data, int offset, int len) - Аналогично writeBinary (Base64Variant, byte [], int, int), но по умолчанию используется вариант Base64 по умолчанию Джексона (который является Base64Variants.MIME_NO_LINEFEEDS).
40 int writeBinary(InputStream data, int dataLength) - Аналогично writeBinary (Base64Variant, InputStream, int), но предполагается, что по умолчанию используется вариант Base64 по умолчанию Jackson (который является Base64Variants.MIME_NO_LINEFEEDS).
41 год void writeBinaryField(String fieldName, byte[] data) - Удобный метод вывода записи поля ("член"), которое содержит указанные данные в форме в кодировке base64.
42 abstract void writeBoolean(boolean state) - Метод вывода буквального логического значения Json (одна из строк «истина» и «ложь»).
43 год void writeBooleanField(String fieldName, boolean value) - Удобный метод вывода записи поля ("член") с логическим значением.
44 abstract void writeEndArray() - Метод написания закрывающего маркера значения массива JSON (символ ']'; плюс возможное оформление пробелов, если включена красивая печать).
45 abstract void writeEndObject() - Метод написания закрывающего маркера значения объекта JSON (символ '}'; плюс возможное оформление пробелов, если включена красивая печать).
46 abstract void writeFieldName(SerializableString name) - Метод аналогичен writeFieldName (String), главное отличие состоит в том, что он может работать лучше, поскольку некоторые операции (например, цитирование определенных символов или кодирование во внешнюю кодировку, если поддерживается генератором) могут выполняться только один раз и повторно использоваться для последующих вызовов.
47 abstract void writeFieldName(String name) - Метод записи имени поля (строка JSON, заключенная в двойные кавычки: синтаксически идентичная значению строки JSON), возможно, украшенное пробелом, если включена красивая печать.
48 abstract void writeNull() - Метод вывода буквального нулевого значения Json.
49 void writeNullField(String fieldName) - Удобный метод вывода записи поля ("член"), имеющей буквальное значение JSON null.
50 abstract void writeNumber(BigDecimal dec) - Метод вывода указывает числовое значение Json.
51 abstract void writeNumber(BigInteger v) - Метод вывода заданного значения в виде числа Json.
52 abstract void writeNumber(double d) - Метод вывода указывает числовое значение Json.
53 abstract void writeNumber(float f) - Метод вывода указывает числовое значение Json.
54 abstract void writeNumber(int v) - Метод вывода заданного значения в виде числа Json.
55 abstract void writeNumber(long v) - Метод вывода заданного значения в виде числа Json.
56 void writeNumber(short v) - Метод вывода заданного значения в виде числа Json.
57 abstract void writeNumber(String encodedValue) - Метод записи, который можно использовать для пользовательских числовых типов, которые нельзя (легко?) Преобразовать в "стандартные" числовые типы Java.
58 void writeNumberField(String fieldName, BigDecimal value) - Удобный метод вывода записи поля («член») с указанным числовым значением.
59 void writeNumberField(String fieldName, double value) - Удобный метод вывода записи поля («член») с указанным числовым значением.
60 void writeNumberField(String fieldName, float value) - Удобный метод вывода записи поля («член») с указанным числовым значением.
61 void writeNumberField(String fieldName, int value) - Удобный метод вывода записи поля («член») с указанным числовым значением.
62 void writeNumberField(String fieldName, long value) - Удобный метод вывода записи поля («член») с указанным числовым значением.
63 abstract void writeObject(Object pojo) - Метод записи данного Java-объекта (POJO) как Json.
64 void writeObjectField(String fieldName, Object pojo) - Удобный метод вывода записи поля («член»), значение которой имеет содержимое конкретного объекта Java.
65 void writeObjectFieldStart(String fieldName) - Удобный метод вывода записи поля ("член") (который будет содержать значение объекта JSON) и маркера START_OBJECT.
66 void writeObjectId(Object id) - Метод, который можно вызвать для вывода так называемого собственного идентификатора объекта.
67 void writeObjectRef(Object id) - Метод, который можно вызвать для вывода ссылок на собственные идентификаторы объектов.
68 void writeOmittedField(String fieldName) Method called to indicate that a property in this position was skipped.
69 abstract void writeRaw(char c) - Метод, который заставит генератор копировать вводимый текст дословно без каких-либо изменений (включая то, что не выполняется экранирование и не добавляются разделители, даже если в противном случае контекст [массив, объект] потребовал бы их).
70 abstract void writeRaw(char[] text, int offset, int len) - Метод, который заставит генератор копировать вводимый текст дословно без каких-либо изменений (включая то, что не выполняется экранирование и не добавляются разделители, даже если в противном случае контекст [массив, объект] потребовал бы их).
71 void writeRaw(SerializableString raw) - Метод, который заставит генератор копировать вводимый текст дословно без каких-либо изменений (включая то, что не выполняется экранирование и не добавляются разделители, даже если в противном случае контекст [массив, объект] потребовал бы их).
72 abstract void writeRaw(String text) - Метод, который заставит генератор копировать вводимый текст дословно без каких-либо изменений (включая то, что не выполняется экранирование и не добавляются разделители, даже если в противном случае контекст [массив, объект] потребовал бы их).
73 abstract void writeRaw(String text, int offset, int len) - Метод, который заставит генератор копировать вводимый текст дословно без каких-либо изменений (включая то, что не выполняется экранирование и не добавляются разделители, даже если в противном случае контекст [массив, объект] потребовал бы их).
74 abstract void writeRawUTF8String(byte[] text, int offset, int length) - Метод аналогичен writeString (String), но принимает на вход строку в кодировке UTF-8, которая должна выводиться как есть, без дополнительного экранирования (тип которого зависит от формата данных; обратная косая черта для JSON).
75 abstract void writeRawValue(char[] text, int offset, int len)
76 abstract void writeRawValue(String text)- Method that will force generator to copy input text verbatim without any modifications, but assuming it must constitute a single legal JSON value (number, string, boolean, null, Array or List).
77 abstract void writeRawValue(String text, int offset, int len)
78 abstract void writeStartArray()- Method for writing starting marker of a JSON Array value (character '['; plus possible white space decoration if pretty-printing is enabled).
79 abstract void writeStartObject() - Method for writing starting marker of a JSON Object value (character '{'; plus possible white space decoration if pretty-printing is enabled).
80 abstract void writeString(char[] text, int offset, int len) - Method for outputting a String value.
81 abstract void writeString(SerializableString text) - Method similar to writeString(String), but that takes SerializableString which can make this potentially more efficient to call as generator may be able to reuse quoted and/or encoded representation.
82 abstract void writeString(String text) - Method for outputting a String value.
83 void writeStringField(String fieldName, String value) - Convenience method for outputting a field entry ("member") that has a String value.
84 abstract void writeTree(TreeNode rootNode) - Method for writing given JSON tree (expressed as a tree where given JsonNode is the root) using this generator.
85 void writeTypeId(Object id) - Method that can be called to output so-called native Type Id.
86 abstract void writeUTF8String(byte[] text, int offset, int length) - Method similar to writeString(String) but that takes as its input a UTF-8 encoded String which has not been escaped using whatever escaping scheme data format requires (for JSON that is backslash-escaping for control characters and double-quotes; for other formats something else).

Methods inherited

This class inherits methods from the following classes:

  • java.lang.Object

JsonParser Class

Introduction

JsonParser is the base class to define public API for reading Json content. Instances are created using factory methods of a JsonFactory instance.

Class declaration

Following is the declaration for com.fasterxml.jackson.core.JsonParser class:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

Nested Classes

S.N. Class & Description
1 static class JsonParser.Feature
Enumeration that defines all togglable features for parsers.
2 static class JsonParser.NumberType
Enumeration of possible "native" (optimal) types that can be used for numbers.

Fields

  • protected int _features - Bit flag composed of bits that indicate which JsonParser.Features are enabled.

Constructors

S.N. Constructor & Description
1 protected JsonParser()
Default constructor
2 protected JsonParser(int features)

Class Methods

S.N. Method & Description
1 protected JsonParseException _constructError(String msg) - Helper method for constructing JsonParseExceptions based on current state of the parser.
2 protected void _reportUnsupportedOperation() - Helper method to call for operations that are not supported by parser implementation.
3 boolean canReadObjectId() - Introspection method that may be called to see if the underlying data format supports some kind of Object Ids natively (many do not; for example, JSON doesn't).
4 boolean canReadTypeId() - Introspection method that may be called to see if the underlying data format supports some kind of Type Ids natively (many do not; for example, JSON doesn't).
5 boolean canUseSchema(FormatSchema schema) - Method that can be used to verify that given schema can be used with this parser (using setSchema(com.fasterxml.jackson.core.FormatSchema)).
6 abstract void clearCurrentToken() - Method called to "consume" the current token by effectively removing it so that hasCurrentToken() returns false, and getCurrentToken() null).
7 abstract void close() - Closes the parser so that no further iteration or data access can be made; will also close the underlying input source if parser either owns the input source, or feature JsonParser.Feature.AUTO_CLOSE_SOURCE is enabled.
8 JsonParser configure(JsonParser.Feature f, boolean state) - Method for enabling or disabling specified feature (check JsonParser.Feature for list of features)
9 JsonParser disable(JsonParser.Feature f) - Method for disabling specified feature (check JsonParser.Feature for list of features)
10 JsonParser enable(JsonParser.Feature f) - Method for enabling specified parser feature (check JsonParser.Feature for list of features)
11 abstract BigInteger getBigIntegerValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can not be used as a Java long primitive type due to its magnitude.
12 byte[] getBinaryValue() - Convenience alternative to getBinaryValue(Base64Variant) that defaults to using Base64Variants.getDefaultVariant() as the default encoding.
13 abstract byte[] getBinaryValue(Base64Variant b64variant) - Method that can be used to read (and consume -- results may not be accessible using other methods after the call) base64-encoded binary data included in the current textual JSON value.
14 boolean getBooleanValue() - Convenience accessor that can be called when the current token is JsonToken.VALUE_TRUE or JsonToken.VALUE_FALSE.
15 byte getByteValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a value of Java byte primitive type.
16 abstract ObjectCodec getCodec() - Accessor for ObjectCodec associated with this parser, if any.
17 abstract JsonLocation getCurrentLocation() - Method that returns location of the last processed character; usually for error reporting purposes.
18 abstract String getCurrentName() - Method that can be called to get the name associated with the current token: for JsonToken.FIELD_NAMEs it will be the same as what getText() returns; for field values it will be preceding field name; and for others (array values, root-level values) null.
19 abstract JsonToken getCurrentToken() - Accessor to find which token parser currently points to, if any; null will be returned if none.
20 abstract int getCurrentTokenId() - Method similar to getCurrentToken() but that returns an int instead of JsonToken (enum value).
21 abstract BigDecimal getDecimalValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_FLOAT or JsonToken.VALUE_NUMBER_INT.
22 abstract double getDoubleValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_FLOAT and it can be expressed as a Java double primitive type.
23 abstract Object getEmbeddedObject() - Accessor that can be called if (and only if) the current token is JsonToken.VALUE_EMBEDDED_OBJECT.
24 int getFeatureMask() - Bulk access method for getting state of all standard JsonParser.Features.
25 abstract float getFloatValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_FLOAT and it can be expressed as a Java float primitive type.
26 Object getInputSource() - Method that can be used to get access to object that is used to access input being parsed; this is usually either InputStream or Reader, depending on what parser was constructed with.
27 abstract int getIntValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a value of Java int primitive type.
28 abstract JsonToken getLastClearedToken() - Method that can be called to get the last token that was cleared using clearCurrentToken().
29 abstract long getLongValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a Java long primitive type.
30 abstract JsonParser.NumberType getNumberType() - If current token is of type JsonToken.VALUE_NUMBER_INT or JsonToken.VALUE_NUMBER_FLOAT, returns one of JsonParser.NumberType constants; otherwise returns null.
31 abstract Number getNumberValue() - Generic number value accessor method that will work for all kinds of numeric values.
32 Object getObjectId() - Method that can be called to check whether current token (one that was just read) has an associated Object id, and if so, return it.
33 abstract JsonStreamContext getParsingContext() - Method that can be used to access current parsing context reader is in.
34 FormatSchema getSchema() - Method for accessing Schema that this parser uses, if any.
35 short getShortValue() - Numeric accessor that can be called when the current token is of type JsonToken.VALUE_NUMBER_INT and it can be expressed as a value of Java short primitive type.
36 abstract String getText() - Method for accessing textual representation of the current token; if no current token (before first call to nextToken(), or after encountering end-of-input), returns null.
37 abstract char[] getTextCharacters() - Method similar to getText(), but that will return underlying (unmodifiable) character array that contains textual value, instead of constructing a String object to contain this information.
38 abstract int getTextLength() - Accessor used with getTextCharacters(), to know length of String stored in returned buffer.
39 abstract int getTextOffset() - Accessor used with getTextCharacters(), to know offset of the first text content character within buffer.
40 abstract JsonLocation getTokenLocation() - Method that return the starting location of the current token; that is, position of the first character from input that starts the current token.
41 Object getTypeId() - Method that can be called to check whether current token (one that was just read) has an associated type id, and if so, return it.
42 boolean getValueAsBoolean() - Method that will try to convert value of current token to a boolean.
43 boolean getValueAsBoolean(boolean defaultValue) - Method that will try to convert value of current token to a boolean.
44 double getValueAsDouble() - Method that will try to convert value of current token to a Java double.
45 double getValueAsDouble(double defaultValue) - Method that will try to convert value of current token to a Java double.
46 int getValueAsInt() - Method that will try to convert value of current token to a int.
47 int getValueAsInt(int defaultValue) - Method that will try to convert value of current token to a int.
48 long getValueAsLong() - Method that will try to convert value of current token to a long.
49 long getValueAsLong(long defaultValue) - Method that will try to convert value of current token to a long.
50 String getValueAsString() - Method that will try to convert value of current token to a String.
51 abstract String getValueAsString(String defaultValue) - Method that will try to convert value of current token to a String.
52 abstract boolean hasCurrentToken() - Method for checking whether parser currently points to a token (and data for that token is available).
53 abstract boolean hasTextCharacters() - Method that can be used to determine whether calling of getTextCharacters() would be the most efficient way to access textual content for the event parser currently points to.
54 abstract boolean isClosed() - Method that can be called to determine whether this parser is closed or not.
55 boolean isEnabled(JsonParser.Feature f) - Method for checking whether specified JsonParser.Feature is enabled.
56 boolean isExpectedStartArrayToken() - Specialized accessor that can be used to verify that the current token indicates start array (usually meaning that current token is JsonToken.START_ARRAY) when start array is expected.
57 Boolean nextBooleanValue() - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_TRUE or JsonToken.VALUE_FALSE returns matching Boolean value; otherwise return null.
58 boolean nextFieldName(SerializableString str) - Method that fetches next token (as if calling nextToken()) and verifies whether it is JsonToken.FIELD_NAME with specified name and returns result of that comparison.
59 int nextIntValue(int defaultValue) - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_NUMBER_INT returns 32-bit int value; otherwise returns specified default value It is functionally equivalent to:
60 long nextLongValue(long defaultValue) - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_NUMBER_INT returns 64-bit long value; otherwise returns specified default value It is functionally equivalent to:
61 String nextTextValue() - Method that fetches next token (as if calling nextToken()) and if it is JsonToken.VALUE_STRING returns contained String value; otherwise returns null.
62 abstract JsonToken nextToken() - Main iteration method, which will advance stream enough to determine type of the next token, if any.
63 abstract JsonToken nextValue() - Iteration method that will advance stream enough to determine type of the next token that is a value type (including JSON Array and Object start/end markers).
64 abstract void overrideCurrentName(String name) - Method that can be used to change what is considered to be the current (field) name.
65 int readBinaryValue(Base64Variant b64variant, OutputStream out) - Similar to readBinaryValue(OutputStream) but allows explicitly specifying base64 variant to use.
66 int readBinaryValue(OutputStream out) - Method that can be used as an alternative to getBigIntegerValue(), especially when value can be large.
67 <T> T readValueAs(Class<T> valueType) - Method to deserialize JSON content into a non-container type (it can be an array type, however): typically a bean, array or a wrapper type (like Boolean).
68 <T> T readValueAs(TypeReference<?> valueTypeRef)- Method to deserialize JSON content into a Java type, reference to which is passed as argument.
69 <T extends TreeNode> T readValueAsTree() - Method to deserialize JSON content into equivalent "tree model", represented by root TreeNode of resulting model.
70 <T> Iterator<T> readValuesAs(Class<T> valueType) - Method for reading sequence of Objects from parser stream, all with same specified value type.
71 <T> Iterator<T> readValuesAs(TypeReference<?> valueTypeRef)- Method for reading sequence of Objects from parser stream, all with same specified value type.
72 int releaseBuffered(OutputStream out) - Method that can be called to push back any content that has been read but not consumed by the parser.
73 int releaseBuffered(Writer w) - Method that can be called to push back any content that has been read but not consumed by the parser.
74 boolean requiresCustomCodec() - Method that can be called to determine if a custom ObjectCodec is needed for binding data parsed using JsonParser constructed by this factory (which typically also implies the same for serialization with JsonGenerator).
75 abstract void setCodec(ObjectCodec c) - Setter that allows defining ObjectCodec associated with this parser, if any.
76 JsonParser setFeatureMask(int mask) - Bulk set method for (re)settting states of all standard JsonParser.Features
77 void setSchema(FormatSchema schema) - Method to call to make this parser use specified schema.
78 abstract JsonParser skipChildren() - Method that will skip all child tokens of an array or object token that the parser currently points to, iff stream points to JsonToken.START_OBJECT or JsonToken.START_ARRAY.
79 abstract Version version() - Accessor for getting version of the core package, given a parser instance.

Methods inherited

This class inherits methods from the following classes:

  • java.lang.Object