Jackson - Guia Rápido

Jackson é uma biblioteca simples baseada em java para serializar objetos java para JSON e vice-versa.

Características

  • Easy to use. - jackson API fornece uma fachada de alto nível para simplificar os casos de uso comumente usados.

  • No need to create mapping. - jackson API fornece mapeamento padrão para a maioria dos objetos a serem serializados.

  • Performance. - jackson é silencioso e rápido, ocupa pouco espaço na memória e é adequado para sistemas ou gráficos de objetos grandes.

  • Clean JSON. - jackson cria um resultado JSON limpo e compacto que é fácil de ler.

  • No Dependency. - a biblioteca jackson não requer nenhuma outra biblioteca além da jdk.

  • Open Source - a biblioteca jackson é de código aberto e de uso gratuito.

Três maneiras de processar JSON

Jackson oferece três maneiras alternativas de processar JSON

  • Streaming API- lê e grava conteúdo JSON como eventos discretos. JsonParser lê os dados, enquanto JsonGenerator grava os dados. É a abordagem mais poderosa entre as três, com menor sobrecarga e mais rápida em operações de leitura / gravação. É um analisador analógico para Stax para XML.

  • Tree Model- prepara uma representação em árvore na memória do documento JSON. Árvore de construção do ObjectMapper de nós JsonNode. É a abordagem mais flexível. É análogo ao analisador DOM para XML.

  • Data Binding - converte JSON para e de POJO (Plain Old Java Object) usando o acessador de propriedade ou usando anotações. É de dois tipos.

    • Simple Data Binding - Converte JSON para e de Java Maps, Lists, Strings, Numbers, Booleans e objetos nulos.

    • Full Data Binding - Converte JSON de e para qualquer tipo JAVA.

    ObjectMapper lê / grava JSON para ambos os tipos de ligações de dados. A vinculação de dados é a maneira mais conveniente e análoga ao parer JAXB para XML.

Experimente a opção online

Você realmente não precisa configurar seu próprio ambiente para começar a aprender Guava, uma biblioteca baseada em JAVA. O Reason é muito simples, já configuramos o ambiente de programação Java online, de forma que você possa compilar e executar todos os exemplos disponíveis online ao mesmo tempo, enquanto faz seu trabalho teórico. Isso lhe dá confiança no que está lendo e para verificar o resultado com diferentes opções. Sinta-se à vontade para modificar qualquer exemplo e executá-lo online.

Tente seguir o exemplo usando Try it opção disponível no canto superior direito da caixa de código de exemplo abaixo:

public class MyFirstJavaProgram {

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

Para a maioria dos exemplos dados neste tutorial, você encontrará Try it opção, então apenas faça uso dela e aproveite seu aprendizado.

Configuração de ambiente local

Se você ainda deseja configurar seu ambiente para a linguagem de programação Java, esta seção o orienta sobre como fazer download e configurar o Java em sua máquina. Siga as etapas a seguir para configurar o ambiente.

Java SE está disponível gratuitamente no link Download Java . Portanto, você baixa uma versão com base em seu sistema operacional.

Siga as instruções para baixar java e executar o .exepara instalar o Java em sua máquina. Depois de instalar o Java em sua máquina, você precisará definir variáveis ​​de ambiente para apontar para os diretórios de instalação corretos:

Configurando o caminho para Windows 2000 / XP:

Supondo que você tenha instalado o Java no diretório c: \ Arquivos de programas \ java \ jdk :

  • Clique com o botão direito em 'Meu Computador' e selecione 'Propriedades'.

  • Clique no botão 'Variáveis ​​de ambiente' na guia 'Avançado'.

  • Agora, altere a variável 'Path' para que também contenha o caminho para o executável Java. Exemplo, se o caminho está definido atualmente para 'C: \ WINDOWS \ SYSTEM32', altere seu caminho para 'C: \ WINDOWS \ SYSTEM32; c: \ Arquivos de programas \ java \ jdk \ bin'.

Configurando o caminho para o Windows 95/98 / ME:

Supondo que você tenha instalado o Java no diretório c: \ Arquivos de programas \ java \ jdk :

  • Edite o arquivo 'C: \ autoexec.bat' e adicione a seguinte linha no final:
    'SET PATH =% PATH%; C: \ Arquivos de programas \ java \ jdk \ bin'

Configurando o caminho para Linux, UNIX, Solaris, FreeBSD:

A variável de ambiente PATH deve ser definida para apontar para onde os binários Java foram instalados. Consulte a documentação do shell se tiver problemas para fazer isso.

Por exemplo, se você usar bash como seu shell, você adicionaria a seguinte linha ao final de seu '.bashrc: export PATH = / path / to / java: $ PATH'

Editores Java populares:

Para escrever seus programas Java, você precisará de um editor de texto. Existem IDEs ainda mais sofisticados disponíveis no mercado. Mas, por enquanto, você pode considerar um dos seguintes:

  • Notepad: Na máquina Windows, você pode usar qualquer editor de texto simples como o Notepad (recomendado para este tutorial), TextPad.

  • Netbeans:é um IDE Java de código aberto e gratuito que pode ser baixado de http://www.netbeans.org/index.html.

  • Eclipse: também é um IDE Java desenvolvido pela comunidade de código aberto eclipse e pode ser baixado de http://www.eclipse.org/.

Baixar arquivo jackson

Baixe a versão mais recente do arquivo JAR de Jackson no Repositório Maven - Jackson . Neste tutorial, jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar e jackson-databind-2.8.9.jar são baixados e copiados para a pasta C: \> jackson.

SO Nome do arquivo
janelas jackson-xxx-2.8.9.jar
Linux jackson-xxx-2.8.9.jar
Mac jackson-xxx-2.8.9.jar

Definir ambiente de jackson

Colocou o jackson_HOMEvariável de ambiente para apontar para o local do diretório base onde o jar Guava está armazenado em sua máquina. Supondo que extraímos jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar e jackson-databind-2.8.9.jar na pasta jackson em vários sistemas operacionais como segue.

SO Resultado
janelas Defina a variável de ambiente jackson_HOME para C: \ jackson
Linux export jackson_HOME = / usr / local / jackson
Mac export jackson_HOME = / Library / jackson

Definir variável CLASSPATH

Colocou o CLASSPATHvariável de ambiente para apontar para o local do jar de jackson. Supondo que armazenamos jackson-core-2.8.9.jar, jackson-annotations-2.8.9.jar e jackson-databind-2.8.9.jar na pasta jackson em vários sistemas operacionais como segue.

SO Resultado
janelas Defina a variável de ambiente CLASSPATH como% 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;.;
Linux export 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 export 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 :.

Antes de entrar nos detalhes da biblioteca jackson, vamos ver um aplicativo em ação. Neste exemplo, criamos a classe Aluno. Criaremos uma string JSON com os detalhes do aluno e desserializaremos para o objeto do aluno e, em seguida, serializaremos para uma String JSON.

Crie um arquivo de classe java chamado JacksonTester em C:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

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

Passos para lembrar

A seguir estão as etapas importantes a serem consideradas aqui.

Etapa 1: Crie o objeto ObjectMapper.

Crie o objeto ObjectMapper. É um objeto reutilizável.

ObjectMapper mapper = new ObjectMapper();

Etapa 2: deserializar JSON para objeto.

Use o método readValue () para obter o objeto do JSON. Passe string json / fonte de string json e tipo de objeto como parâmetro.

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

Etapa 3: serializar objeto para JSON.

Use o método writeValueAsString () para obter a representação de string JSON de um objeto.

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

ObjectMapper é a classe de ator principal da biblioteca Jackson. Classe ObjectMapper ObjectMapper fornece funcionalidade para leitura e gravação de JSON, para e de POJOs básicos (Plain Old Java Objects), ou para e de um JSON Tree Model (JsonNode) de uso geral, bem como funcionalidade relacionada para executar conversões. Também é altamente personalizável para trabalhar com diferentes estilos de conteúdo JSON e para suportar conceitos de objeto mais avançados, como polimorfismo e identidade de objeto. ObjectMapper também atua como uma fábrica para classes ObjectReader e ObjectWriter mais avançadas.

Declaração de Classe

A seguir está a declaração para com.fasterxml.jackson.databind.ObjectMapper classe -

public class ObjectMapper
   extends ObjectCodec
      implements Versioned, Serializable

Classes aninhadas

S.No. Classe e descrição
1 static class ObjectMapper.DefaultTypeResolverBuilder

TypeResolverBuilder customizado que fornece construtores de resolvedor de tipo usados ​​com a chamada "digitação padrão" (consulte enableDefaultTyping () para obter detalhes).

2 static class ObjectMapper.DefaultTyping

Enumeração usada com enableDefaultTyping () para especificar para que tipo de tipos (classes) a digitação padrão deve ser usada.

Campos

  • protected DeserializationConfig _deserializationConfig - Objeto de configuração que define configurações globais básicas para o processo de serialização.

  • protected DefaultDeserializationContext _deserializationContext- Objeto de contexto Blueprint; armazenados aqui para permitir subclasses personalizadas.

  • protected InjectableValues _injectableValues - Provedor de valores para injetar em POJOs desserializados.

  • protected JsonFactory _jsonFactory - Fábrica usada para criar instâncias JsonParser e JsonGenerator conforme necessário.

  • protected SimpleMixInResolver _mixIns - Mapeamento que define como aplicar anotações mix-in: key é o tipo para anotações adicionais recebidas e value é o tipo que tem anotações para "mix in".

  • protected ConfigOverrides _propertyOverrides - Substituições de configuração por tipo atualmente ativas, acessadas por tipo declarado de propriedade.

  • protected Set<Object> _registeredModuleTypes - Conjunto de tipos de módulo (de acordo com Module.getTypeId () que foram registrados; monitorado iff MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS está habilitado, para que chamadas de registro duplicadas possam ser ignoradas (para evitar adicionar os mesmos manipuladores várias vezes, principalmente).

  • protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers - Usaremos um mapa de nível principal separado para controlar os desserializadores de nível raiz.

  • protected SerializationConfig _serializationConfig - Objeto de configuração que define configurações globais básicas para o processo de serialização.

  • protected SerializerFactory _serializerFactory - Fábrica de serializador usada para construir serializadores.

  • protected DefaultSerializerProvider _serializerProvider - Objeto que gerencia o acesso aos serializadores usados ​​para serialização, incluindo cache.

  • protected SubtypeResolver _subtypeResolver - Coisa usada para registrar subtipos, resolvendo-os em super / subtipos conforme necessário.

  • protected TypeFactory _typeFactory- Fábrica específica usada para criar instâncias JavaType; necessário para permitir que os módulos adicionem mais manipulação de tipo customizado (principalmente para suportar tipos de linguagens JVM não Java).

  • protected static AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR

  • protected static BaseSettings DEFAULT_BASE - As configurações base contêm padrões usados ​​para todas as instâncias do ObjectMapper.

  • protected static VisibilityChecker<?> STD_VISIBILITY_CHECKER

Construtores

S.No. Construtor e descrição
1 ObjectMapper()

O construtor padrão, que construirá o JsonFactory padrão conforme necessário, usa SerializerProvider como seu SerializerProvider e BeanSerializerFactory como seu SerializerFactory.

2 ObjectMapper(JsonFactory jf)

Constrói uma instância que usa JsonFactory especificada para construir JsonParsers e / ou JsonGenerators necessários.

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

Constrói uma instância que usa JsonFactory especificada para construir JsonParsers e / ou JsonGenerators necessários e usa provedores fornecidos para acessar serializadores e desserializadores.

4 protected ObjectMapper(ObjectMapper src)

Construtor de cópia, usado principalmente para oferecer suporte a copy ().

Métodos

Método auxiliar substituível usado para construir SerializerProvider a ser usado para serialização. void addMixInAnnotations (Class <?> target, Class <?> mixinSource) - Obsoleto. Desde 2.5: substituído por uma forma fluente do método; addMixIn (classe, classe). protegido DefaultDeserializationContext createDeserializationContext (JsonParser p, DeserializationConfig cfg) - Método auxiliar interno chamado para criar uma instância de DeserializationContext para desserializar um único valor de raiz. JsonSchema generateJsonSchema (Classe <?> T) - Obsoleto. Desde 2.6 use gerador de esquema JSON externo (https://github.com/FasterXML/jackson-module-jsonSchema) (que por baixo do capô chama acceptJsonFormatVisitor (JavaType, JsonFormatVisitorWrapper)) void registerSubtypes (Class <?> ... classes) - Método para registrar a classe especificada como um subtipo, de modo que a resolução baseada no nome do tipo possa vincular supertipos a subtipos (como uma alternativa ao uso de anotações). void setFilters (FilterProvider filterProvider) - Obsoleto. Desde 2.6, use setFilterProvider (com.fasterxml.jackson.databind.ser.FilterProvider) em vez (permite encadeamento) Método de fábrica para construir ObjectReader que usará detalhes de escape de caractere especificado para saída.
1 protected void _checkInvalidCopy(Class<?> exp)

2 protected void _configAndWriteValue(JsonGenerator g, Object value) - Método chamado para configurar o gerador conforme necessário e, em seguida, chamar a funcionalidade de gravação
3 protected Object _convert(Object fromValue, JavaType toValueType) - Implementação de conversão real: em vez de usar métodos existentes de leitura e gravação, grande parte do código é embutido.
4 protected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) - Método chamado para localizar o desserializador para o valor de nível raiz passado.
5 protected JsonToken _initForReading(JsonParser p) - Método chamado para garantir que determinado analisador está pronto para ler o conteúdo para vinculação de dados.
6 protected ObjectReader _newReader(DeserializationConfig config) - As subclasses do método de fábrica devem substituir, para produzir instâncias ObjectReader do subtipo adequado
7 protected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues) - As subclasses do método de fábrica devem substituir, para produzir instâncias ObjectReader do subtipo adequado
8 protected ObjectWriter _newWriter(SerializationConfig config) - As subclasses do método de fábrica devem ser substituídas, para produzir instâncias ObjectWriter do subtipo adequado
9 protected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema) - As subclasses do método de fábrica devem ser substituídas, para produzir instâncias ObjectWriter do subtipo adequado
10 protected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp) - As subclasses do método de fábrica devem ser substituídas para produzir instâncias ObjectWriter do subtipo adequado.
11 protected Object _readMapAndClose(JsonParser p0, JavaType valueType)
12 protected Object _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) - Implementação real da operação de leitura + ligação de valor.
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) - Método de hierarquia de tipo de visita para determinado tipo, usando visitante especificado.
17 void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) - Método de hierarquia de tipo de visita para determinado tipo, usando visitante especificado.
18 ObjectMapper addHandler(DeserializationProblemHandler h) - Método para adicionar DeserializationProblemHandler especificado a ser usado para lidar com problemas específicos durante a desserialização.
19 ObjectMapper addMixIn(Class<?> target, Class<?> mixinSource) - Método a ser usado para adicionar anotações combinadas para usar para aumentar a classe ou interface especificada.
20 boolean canDeserialize(JavaType type) - Método que pode ser chamado para verificar se o mapeador acha que pode desserializar um objeto de determinado tipo.
21 boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause) - Método semelhante a canDeserialize (JavaType), mas que pode retornar Throwable real que foi lançado ao tentar construir o serializador: isso pode ser útil para descobrir qual é o problema real.
22 boolean canSerialize(Class<?> type) - Método que pode ser chamado para verificar se o mapeador acha que pode serializar uma instância de determinada classe.
23 boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause) - Método semelhante a canSerialize (Class), mas que pode retornar Throwable real que foi lançado ao tentar construir o serializador: isso pode ser útil para descobrir qual é o problema real.
24 ObjectMapper clearProblemHandlers() - Método para remover todas as instâncias DeserializationProblemHandlers registradas deste mapeador.
25 MutableConfigOverride configOverride(Classlt;?> type) - Acessador para obter um objeto de substituição de configuração mutável para determinado tipo, necessário para adicionar ou alterar substituições por tipo aplicadas a propriedades de determinado tipo.
26 ObjectMapper configure(DeserializationFeature f, boolean state) - Método para alterar o estado de um recurso de desserialização liga / desliga para este mapeador de objetos.
27 ObjectMapper configure(JsonGenerator.Feature f, boolean state) - Método para alterar o estado de um recurso JsonGenerator ligado / desligado para instâncias do gerador criadas por este mapeador de objetos.
28 ObjectMapper configure(JsonParser.Feature f, boolean state) - Método para alterar o estado de JsonParser.Features especificado para instâncias do analisador que este mapeador de objetos cria.
29 ObjectMapper configure(MapperFeature f, boolean state) - Método para alterar o estado de um recurso on / off do mapeador para esta instância do mapeador.
30 ObjectMapper configure(SerializationFeature f, boolean state) - Método para alterar o estado de um recurso de serialização liga / desliga para este mapeador de objetos.
31 JavaType constructType(Type t) - Método de conveniência para construir JavaType a partir de um determinado tipo (normalmente java.lang.Class), mas sem contexto explícito.
32 <T> T convertValue(Object fromValue, Class<T> toValueType) - Método de conveniência para fazer a conversão em duas etapas de determinado valor, em instância de determinado tipo de valor, se (mas somente se!) A conversão for necessária.
33 <T> T convertValue(Object fromValue, JavaType toValueType) - Veja convertValue (Object, Class)
34 <T> T convertValue(Object fromValue, TypeReference<?> toValueTypeRef) - Veja convertValue (Object, Class)
35 ObjectMapper copy() - Método para criar uma nova instância do ObjectMapper que possui a mesma configuração inicial desta instância.
36 ArrayNode createArrayNode() - Observação: o tipo de retorno é co-variante, já que a abstração ObjectCodec básica não pode se referir a tipos de nós concretos (já que é parte do pacote principal, enquanto impls faz parte do pacote mapeador)
37 ObjectNode createObjectNode() - Observação: o tipo de retorno é co-variante, já que a abstração ObjectCodec básica não pode se referir a tipos de nós concretos (já que é parte do pacote principal, enquanto impls faz parte do pacote mapeador)
38 protected ClassIntrospector defaultClassIntrospector() - Método auxiliar substituível usado para construir ClassIntrospector padrão a ser usado.
39 ObjectMapper disable(DeserializationFeature feature) - Método para habilitar recursos DeserializationConfig especificados.
40 ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f) - Método para habilitar recursos DeserializationConfig especificados.
41 ObjectMapper disable(JsonGenerator.Feature... features) - Método para desativar JsonGenerator.Features especificado para instâncias do analisador que este mapeador de objeto cria.
42 ObjectMapper disable(JsonParser.Feature... features) - Método para desativar JsonParser.Features especificado para instâncias do analisador que este mapeador de objeto cria.
43 ObjectMapper disable(MapperFeature... f) - Método para habilitar recursos DeserializationConfig especificados.
44 ObjectMapper disable(SerializationFeature f) - Método para habilitar recursos DeserializationConfig especificados.
45 ObjectMapper disable(SerializationFeature first, SerializationFeature... f) - Método para habilitar recursos DeserializationConfig especificados.
46 ObjectMapper disableDefaultTyping()- Método para desabilitar a inclusão automática de informações de tipo; em caso afirmativo, apenas os tipos anotados explicitamente (aqueles com JsonTypeInfo) terão informações adicionais de tipo embutido.
47 ObjectMapper enable(DeserializationFeature feature) - Método para habilitar recursos DeserializationConfig especificados.
48 ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f) - Método para habilitar recursos DeserializationConfig especificados.
49 ObjectMapper enable(JsonGenerator.Feature... features) - Método para habilitar JsonGenerator.Features especificado para instâncias do analisador que este mapeador de objetos cria.
50 ObjectMapper enable(JsonParser.Feature... features) - Método para habilitar JsonParser.Features especificado para instâncias do analisador que este mapeador de objetos cria.
51 ObjectMapper enable(MapperFeature... f) - Método para ativar os recursos MapperConfig especificados.
52 ObjectMapper enable(SerializationFeature f) - Método para ativar o recurso DeserializationConfig especificado.
53 ObjectMapper enable(SerializationFeature first, SerializationFeature... f) - Método para habilitar recursos DeserializationConfig especificados.
54 ObjectMapper enableDefaultTyping() - Método de conveniência que é equivalente a chamar
55 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti) - Método de conveniência que é equivalente a chamar
56 ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs) - Método para habilitar a inclusão automática de informações de tipo, necessárias para a desserialização adequada de tipos polimórficos (a menos que os tipos tenham sido anotados com JsonTypeInfo).
57 ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName) - Método para habilitar a inclusão automática de informações de tipo - necessário para desserialização adequada de tipos polimórficos (a menos que os tipos tenham sido anotados com JsonTypeInfo) - usando o mecanismo de inclusão "As.PROPERTY" e o nome da propriedade especificada para usar para inclusão (o padrão é "@ class "já que a informação de tipo padrão sempre usa o nome da classe como identificador de tipo)
58 ObjectMapper findAndRegisterModules() - Método de conveniência funcionalmente equivalente a: mapper.registerModules (mapper.findModules ());
59 Class<?> findMixInClassFor(Class<?> cls)
60 static List<Module> findModules() - Método para localizar métodos disponíveis, usando o recurso JDK ServiceLoader, junto com o SPI fornecido pelo módulo.
61 static List<Module> findModules(ClassLoader classLoader) - Método para localizar métodos disponíveis, usando o recurso JDK ServiceLoader, junto com o SPI fornecido pelo módulo.
62 DateFormat getDateFormat()
63 DeserializationConfig getDeserializationConfig() - Método que retorna o objeto DeserializationConfig padrão compartilhado que define as configurações para desserialização.
64 DeserializationContext getDeserializationContext() - Método para obter DeserializationContext atual.
65 JsonFactory getFactory() - Método que pode ser usado para obter JsonFactory que este mapeador usa se precisar construir JsonParsers e / ou JsonGenerators.
66 InjectableValues getInjectableValues()
67 JsonFactory getJsonFactory()- Descontinuada. Desde 2.1: Use getFactory () ao invés
68 JsonNodeFactory getNodeFactory() - Método que pode ser usado para obter JsonNodeFactory que este mapeador usará ao construir diretamente instâncias JsonNode raiz para Árvores.
69 PropertyNamingStrategy getPropertyNamingStrategy()
70 SerializationConfig getSerializationConfig() - Método que retorna o objeto SerializationConfig padrão compartilhado que define as configurações para serialização.
71 SerializerFactory getSerializerFactory() - Método para obter a SerializerFactory atual.
72 SerializerProvider getSerializerProvider() - Acessador para a instância "blueprint" (ou fábrica), a partir da qual as instâncias são criadas chamando DefaultSerializerProvider.createInstance (com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory).
73 SerializerProvider getSerializerProviderInstance() - Acessador para construir e retornar uma instância SerializerProvider que pode ser usada para acessar serializadores.
74 SubtypeResolver getSubtypeResolver() - Método para acessar o resolvedor de subtipo em uso.
75 TypeFactory getTypeFactory() - Acessador para obter a instância TypeFactory atualmente configurada.
76 VisibilityChecker<?> getVisibilityChecker()- Método para acessar o verificador de visibilidade atualmente configurado; objeto usado para determinar se determinado elemento de propriedade (método, campo, construtor) pode ser detectado automaticamente ou não.
77 boolean isEnabled(DeserializationFeature f) - Método para verificar se determinado recurso específico de desserialização está habilitado.
78 boolean isEnabled(JsonFactory.Feature f) - Método de conveniência, equivalente a:
79 boolean isEnabled(JsonGenerator.Feature f)
80 boolean isEnabled(JsonParser.Feature f)
81 boolean isEnabled(MapperFeature f) - Método para verificar se determinado MapperFeature está ativado.
82 boolean isEnabled(SerializationFeature f) - Método para verificar se determinado recurso específico de serialização está habilitado.
83 int mixInCount()
84 ObjectReader reader() - Método de fábrica para construir ObjectReader com configurações padrão.
85 ObjectReader reader(Base64Variant defaultBase64) - Método de fábrica para construir ObjectReader que usará a variante de codificação Base64 especificada para dados binários codificados por Base64.
86 ObjectReader reader(Class<?> type)- Descontinuada. Desde 2.5, use readerFor (Class) em vez
87 ObjectReader reader(ContextAttributes attrs) - Método de fábrica para construir ObjectReader que usará atributos padrão especificados.
88 ObjectReader reader(DeserializationFeature feature) - Método de fábrica para construir ObjectReader com o recurso especificado habilitado (em comparação com as configurações que esta instância do mapeador possui).
89 ObjectReader reader(DeserializationFeature first, DeserializationFeature... other) - Método de fábrica para construir ObjectReader com recursos especificados habilitados (em comparação com as configurações que esta instância do mapeador possui).
90 ObjectReader reader(FormatSchema schema) - Método de fábrica para construir ObjectReader que irá passar o objeto de esquema específico para JsonParser usado para ler o conteúdo.
91 ObjectReader reader(InjectableValues injectableValues) - Método de fábrica para construir ObjectReader que usará valores injetáveis ​​especificados.
92 ObjectReader reader(JavaType type)- Descontinuada. Desde 2.5, use readerFor (JavaType) em vez
93 ObjectReader reader(JsonNodeFactory f) - Método de fábrica para construir ObjectReader que usará JsonNodeFactory especificado para construir árvores JSON.
94 ObjectReader reader(TypeReference<?> type)- Descontinuada. Desde 2.5, use readerFor (TypeReference) em vez
95 ObjectReader readerFor(Class<?> type) - Método de fábrica para construir ObjectReader que irá ler ou atualizar instâncias do tipo especificado
96 ObjectReader readerFor(JavaType type) - Método de fábrica para construir ObjectReader que irá ler ou atualizar instâncias do tipo especificado
97 ObjectReader readerFor(TypeReference<?> type) - Método de fábrica para construir ObjectReader que irá ler ou atualizar instâncias do tipo especificado
98 ObjectReader readerForUpdating(Object valueToUpdate) - Método de fábrica para construir ObjectReader que atualizará determinado objeto (geralmente Bean, mas também pode ser uma coleção ou um mapa, mas NÃO um array) com dados JSON.
99 ObjectReader readerWithView(Class<?> view) - Método de fábrica para construir ObjectReader que desserializará objetos usando a Visualização JSON (filtro) especificada.
100 JsonNode readTree(byte[] content) - Método para desserializar o conteúdo JSON como árvore expressa usando um conjunto de instâncias JsonNode.
101 JsonNode readTree(File file) - Método para desserializar o conteúdo JSON como árvore expressa usando um conjunto de instâncias JsonNode.
102 JsonNode readTree(InputStream in) - Método para desserializar o conteúdo JSON como árvore expressa usando um conjunto de instâncias JsonNode.
103 <T extends TreeNode> T readTree(JsonParser p) - Método para desserializar o conteúdo JSON como árvore expressa usando um conjunto de instâncias JsonNode.
104 JsonNode readTree(Reader r) - Método para desserializar o conteúdo JSON como árvore expressa usando um conjunto de instâncias JsonNode.
105 JsonNode readTree(String content) - Método para desserializar o conteúdo JSON como árvore expressa usando um conjunto de instâncias JsonNode.
106 JsonNode readTree(URL source) - Método para desserializar o conteúdo JSON como árvore expressa usando um conjunto de instâncias 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) - Método para desserializar o conteúdo JSON de determinado arquivo em determinado tipo Java.
116 <T> T readValue(File src, JavaType valueType) - Método para desserializar o conteúdo JSON de determinado arquivo em determinado tipo Java.
117 <T> T readValue(File src, TypeReference valueTypeRef) - Método para desserializar o conteúdo JSON de determinado arquivo em determinado tipo 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) - Método sobrecarregado de segurança de tipo, basicamente alias para readValue (JsonParser, Class).
123 <T> T readValue(JsonParser p, ResolvedType valueType) - Método para desserializar o conteúdo JSON em um tipo Java, referência ao qual é passada como argumento.
124 <T> T readValue(JsonParser p, TypeReference<?> valueTypeRef) - Método para desserializar o conteúdo JSON em um tipo Java, referência ao qual é passada como argumento.
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) - Método para desserializar o conteúdo JSON de uma determinada String de conteúdo JSON.
128 <T> T readValue(String content, JavaType valueType) - Método para desserializar o conteúdo JSON de uma determinada String de conteúdo JSON.
129 <T> T readValue(String content, TypeReference valueTypeRef) - Método para desserializar o conteúdo JSON de uma determinada String de conteúdo JSON.
130 <T> T readValue(URL src, Class<T> valueType) - Método para desserializar o conteúdo JSON de determinado recurso em determinado tipo Java.
131 <T> T readValue(URL src, JavaType valueType)
132 <T> T readValue(URL src, TypeReference valueTypeRef) - Método para desserializar o conteúdo JSON de determinado recurso em determinado tipo Java.
133 <T> MappingIterator<T> readValues(JsonParser p, Class<T> valueType) - Método de conveniência, equivalente em função a:
134 <T> MappingIterator<T> readValues(JsonParser p, JavaType valueType) - Método de conveniência, equivalente em função a:
135 <T> MappingIterator<T> readValues(JsonParser p, ResolvedType valueType) - Método de conveniência, equivalente em função a:
136 <T> MappingIterator<T> readValues(JsonParser p, TypeReference<?>valueTypeRef) - Método para ler a sequência de objetos do fluxo do analisador.
137 ObjectMapper registerModule(Module module)- Método para registrar um módulo que pode estender a funcionalidade fornecida por este mapeador; por exemplo, adicionando provedores para serializadores e desserializadores personalizados.
138 ObjectMapper registerModules(Iterable<Module> modules)- Método de conveniência para registrar módulos especificados em ordem; funcionalmente equivalente a:
139 ObjectMapper registerModules(Module... modules)- Método de conveniência para registrar módulos especificados em ordem; funcionalmente equivalente a:
140 void registerSubtypes(NamedType... types) - Método para registrar a classe especificada como um subtipo, de modo que a resolução baseada no nome do tipo possa vincular supertipos a subtipos (como uma alternativa ao uso de anotações).
141 ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai) - Método para definir o AnnotationIntrospector usado por esta instância do mapeador para serialização e desserialização.
142 ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) - Método para alterar as instâncias do AnnotationIntrospector usado por esta instância do mapeador para serialização e desserialização, especificando-as separadamente para que diferentes introspecções possam ser usadas para diferentes aspectos.
143 ObjectMapper setBase64Variant(Base64Variant v) - Método que configurará Base64Variant padrão que os serializadores e desserializadores de byte [] usarão.
144 ObjectMapper setConfig(DeserializationConfig config) - Método que permite a substituição do objeto DeserializationConfig subjacente.
145 ObjectMapper setConfig(SerializationConfig config) - Método que permite a substituição do objeto SerializationConfig subjacente, que contém definições de configuração específicas da serialização.
146 ObjectMapper setDateFormat(DateFormat dateFormat) - Método para configurar o DateFormat padrão a ser usado ao serializar valores de tempo como Strings e desserializar de Strings JSON.
147 ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp) - Método para especificar PrettyPrinter a ser usado quando a "impressão bonita padrão" está ativada (ativando SerializationFeature.INDENT_OUTPUT)
148 ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer) - Método para habilitar a inclusão automática de informações de tipo, usando o objeto manipulador especificado para determinar quais tipos isso afeta, bem como detalhes de como as informações são incorporadas.
149 ObjectMapper setFilterProvider(FilterProvider filterProvider) - Método para configurar este mapeador para usar o FilterProvider especificado para mapear Ids de filtro para instâncias de filtro reais.
150 Object setHandlerInstantiator(HandlerInstantiator hi) - Método para configurar HandlerInstantiator a ser usado para criar instâncias de manipuladores (como serializadores, desserializadores, resolvedores de tipo e id de tipo), dada uma classe.
151 ObjectMapper setInjectableValues(InjectableValues injectableValues) - Método para configurar InjectableValues ​​que costumava encontrar valores para injetar.
152 ObjectMapper setLocale(Locale l) - Método para substituir a localidade padrão a ser usada para formatação.
153 void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins)- Descontinuada. Desde 2.5: substituído por uma forma fluente do método; setMixIns (java.util.Map <java.lang.Class <?>, java.lang.Class <? >>).
154 ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver) - Método que pode ser chamado para especificar determinado resolvedor para localizar classes combinadas a serem usadas, substituindo mapeamentos adicionados diretamente.
155 ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins) - Método a ser usado para definir anotações combinadas a serem usadas para aumentar as anotações que as classes processáveis ​​(serializáveis ​​/ desserializáveis) têm.
156 ObjectMapper setNodeFactory(JsonNodeFactory f) - Método para especificar JsonNodeFactory a ser usado para construir nós de árvore de nível raiz (via método createObjectNode ()
157 ObjectMapper setPropertyInclusion(JsonInclude.Value incl) - Método para definir a estratégia de inclusão de propriedade POJO padrão para serialização.
158 ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s) - Método para definir a estratégia de nomenclatura de propriedade customizada a ser usada.
159 ObjectMapper setSerializationInclusion(JsonInclude.Include incl) - Método de conveniência, equivalente a chamar:
160 ObjectMapper setSerializerFactory(SerializerFactory f) - Método para definir SerializerFactory específico a ser usado para construir serializadores (bean).
161 ObjectMapper setSerializerProvider(DefaultSerializerProvider p) - Método para definir a instância SerializerProvider do "blueprint" a ser usada como base para as instâncias reais do provedor a serem usadas para manipular o cache de instâncias JsonSerializer.
162 ObjectMapper setSubtypeResolver(SubtypeResolver str) - Método para definir o resolvedor de subtipo personalizado a ser usado.
163 ObjectMapper setTimeZone(TimeZone tz) - Método para substituir o fuso horário padrão para usar na formatação.
164 ObjectMapper setTypeFactory(TypeFactory f) - Método que pode ser usado para substituir a instância TypeFactory usada por este mapeador.
165 ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility) - Método de conveniência que permite alterar a configuração de VisibilityCheckers subjacentes, para alterar os detalhes de quais tipos de propriedades são detectados automaticamente.
166 ObjectMapper setVisibility(VisibilityChecker<?> vc) - Método para definir VisibilityChecker atualmente configurado, objeto usado para determinar se determinado elemento de propriedade (método, campo, construtor) pode ser detectado automaticamente ou não.
167 void setVisibilityChecker(VisibilityChecker<?> vc)- Descontinuada. Desde o 2.6, use setVisibility (VisibilityChecker).
168 JsonParser treeAsTokens(TreeNode n) - Método para construir um JsonParser a partir da representação em árvore JSON.
169 <T> T treeToValue(TreeNode n, Class<T> valueType) - Método de conversão de conveniência que vinculará os dados fornecidos à árvore JSON em um tipo de valor específico (geralmente bean).
170 <T extends JsonNode> T valueToTree(Object fromValue)- Reverso de treeToValue (com.fasterxml.jackson.core.TreeNode, java.lang.Class <T>); dado um valor (geralmente bean), construirá uma representação de árvore JSON equivalente.
171 Version version() - Método que retornará informações de versão armazenadas e lidas no jar que contém essa classe.
172 ObjectWriter writer() - Método de conveniência para construir ObjectWriter com configurações padrão.
173 ObjectWriter writer(Base64Variant defaultBase64) - Método de fábrica para construir ObjectWriter que usará a variante de codificação Base64 especificada para dados binários codificados por Base64.
174 ObjectWriter writer(CharacterEscapes escapes) -
175 ObjectWriter writer(ContextAttributes attrs) - Método de fábrica para construir ObjectWriter que usará atributos padrão especificados.
176 ObjectWriter writer(DateFormat df)- Método de fábrica para construir ObjectWriter que serializará objetos usando DateFormat especificado; ou, se nulo passado, usando carimbo de data / hora (número de 64 bits.
177 ObjectWriter writer(FilterProvider filterProvider) - Método de fábrica para construir ObjectWriter que serializará objetos usando o provedor de filtro especificado.
178 ObjectWriter writer(FormatSchema schema) - Método de fábrica para construir ObjectWriter que passará o objeto de esquema específico para JsonGenerator usado para escrever conteúdo.
179 ObjectWriter writer(PrettyPrinter pp) - Método de fábrica para construir ObjectWriter que serializará objetos usando a impressora bonita especificada para recuo (ou se nulo, nenhuma impressora bonita)
180 ObjectWriter writer(SerializationFeature feature) - Método de fábrica para construir ObjectWriter com o recurso especificado ativado (em comparação com as configurações que esta instância do mapeador possui).
181 ObjectWriter writer(SerializationFeature first, SerializationFeature... other) - Método de fábrica para construir ObjectWriter com recursos especificados ativados (em comparação com as configurações que esta instância do mapeador possui).
182 ObjectWriter writerFor(Class<?> rootType) - Método de fábrica para construir ObjectWriter que serializará objetos usando o tipo de raiz especificado, em vez do tipo de valor de tempo de execução real.
183 ObjectWriter writerFor(JavaType rootType) - Método de fábrica para construir ObjectWriter que serializará objetos usando o tipo de raiz especificado, em vez do tipo de valor de tempo de execução real.
184 ObjectWriter writerFor(TypeReference<?> rootType) - Método de fábrica para construir ObjectWriter que serializará objetos usando o tipo de raiz especificado, em vez do tipo de valor de tempo de execução real.
185 ObjectWriter writerWithDefaultPrettyPrinter() - Método de fábrica para construir ObjectWriter que serializará objetos usando a bonita impressora padrão para indentação.
186 ObjectWriter writerWithType(Class<?> rootType)- Descontinuada. Desde 2.5, use writerFor (Class) em seu lugar.
187 ObjectWriter writerWithType(JavaType rootType)- Descontinuada. Desde 2.5, use o writerFor (JavaType) em seu lugar.
188 ObjectWriter writerWithType(TypeReference<?> rootType)- Descontinuada. Desde 2.5, use writerFor (TypeReference) em seu lugar.
189 ObjectWriter writerWithView(Class<?> serializationView) - Método de fábrica para construir ObjectWriter que serializará objetos usando a Visualização JSON (filtro) especificada.
190 void writeTree(JsonGenerator jgen, JsonNode rootNode) - Método para serializar determinada Árvore JSON, usando gerador fornecido.
191 void writeTree(JsonGenerator jgen, TreeNode rootNode)
192 void writeValue(DataOutput out, Object value)
193 void writeValue(File resultFile, Object value) - Método que pode ser usado para serializar qualquer valor Java como saída JSON, gravado no arquivo fornecido.
194 void writeValue(JsonGenerator g, Object value) - Método que pode ser usado para serializar qualquer valor Java como saída JSON, usando JsonGenerator fornecido.
195 void writeValue(OutputStream out, Object value) - Método que pode ser usado para serializar qualquer valor Java como saída JSON, usando o fluxo de saída fornecido (usando a codificação JsonEncoding.UTF8).
196 void writeValue(Writer w, Object value) - Método que pode ser usado para serializar qualquer valor Java como saída JSON, usando o Writer fornecido.
197 byte[] writeValueAsBytes(Object value) - Método que pode ser usado para serializar qualquer valor Java como uma matriz de bytes.
198 String writeValueAsString(Object value) - Método que pode ser usado para serializar qualquer valor Java como uma String.

Métodos herdados

Esta classe herda métodos das seguintes classes:

  • java.lang.Object

Exemplo de ObjectMapper

Crie o seguinte programa java usando qualquer editor de sua escolha em dizer C:/> Jackson_WORKSPACE

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

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

Serialização de Objetos

vamos serializar um objeto java em um arquivo json e, em seguida, ler esse arquivo json para obter o objeto de volta. Neste exemplo, criamos a classe Aluno. Criaremos um arquivo student.json que terá uma representação json do objeto Student.

Crie um arquivo de classe java chamado JacksonTester em C:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

Student [ name: Mahesh, age: 10 ]

Ligação de dados

A API Data Binding é usada para converter JSON de e para POJO (Plain Old Java Object) usando o acessador de propriedade ou usando anotações. É de dois tipos.

  • Simple Data Binding - Converte JSON para e de Java Maps, Lists, Strings, Numbers, Booleans e objetos nulos.

  • Full Data Binding - Converte JSON de e para qualquer tipo JAVA.

ObjectMapper lê / grava JSON para ambos os tipos de ligações de dados. A vinculação de dados é a maneira mais conveniente e análoga ao parer JAXB para XML.

Vinculação de dados simples

A vinculação de dados simples refere-se ao mapeamento de JSON para tipos de dados JAVA Core. A tabela a seguir ilustra a relação entre os tipos JSON e os tipos Java.

Sr. Não. Tipo JSON Tipo Java
1 objeto LinkedHashMap <String, Object>
2 matriz ArrayList <Object>
3 corda Corda
4 numero completo Integer, Long ou BigInteger
5 número fracionário Double / BigDecimal
6 verdade | falso boleano
7 nulo nulo

Vamos ver a vinculação de dados simples em ação. Aqui, mapearemos os tipos básicos JAVA diretamente para JSON e vice-versa.

Crie um arquivo de classe java chamado JacksonTester em C:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

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

Full Data Binding

A vinculação de dados completa se refere ao mapeamento de JSON para qualquer objeto 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);

Vamos ver a vinculação de dados simples em ação. Aqui, mapearemos o objeto JAVA diretamente para JSON e vice-versa.

Crie um arquivo de classe java chamado JacksonTester em C:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

Student [ name: Mahesh, age: 10 ]

Vinculação de dados com genéricos

Na vinculação de dados simples, usamos a classe Map, que usa String como chave e Object como objeto de valor. Em vez disso, podemos ter um objeto java concreto e tipo cast para ser usado na vinculação JSON.

Considere o exemplo a seguir com uma classe UserData, uma classe para armazenar dados específicos do usuário.

Crie um arquivo de classe java chamado JacksonTester em C:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

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

Modelo de Árvore

O Modelo de árvore prepara uma representação em árvore na memória do documento JSON. Árvore de construção do ObjectMapper de nós JsonNode. É a abordagem mais flexível. É análogo ao analisador DOM para XML.

Criar árvore a partir de JSON

ObjectMapper fornece um ponteiro para o nó raiz da árvore após a leitura do JSON. O nó raiz pode ser usado para percorrer a árvore completa. Considere o seguinte snippet de código para obter o nó raiz de uma String JSON fornecida.

//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);

Modelo de árvore transversal

Obtenha cada nó usando o caminho relativo para o nó raiz enquanto atravessa a árvore e processa os dados. Considere o seguinte fragmento de código atravessando a árvore fornecida ao nó raiz.

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

Exemplo

Crie um arquivo de classe java chamado JacksonTester em C:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

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

Árvore para JSON

Neste exemplo, criamos uma Árvore usando JsonNode e gravamos em um arquivo json e lemos de volta.

Crie um arquivo de classe java chamado JacksonTester em C:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

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

Árvore para objetos Java

Neste exemplo, criamos uma Árvore usando JsonNode e a gravamos em um arquivo json, lemos a árvore e a convertemos como um objeto Aluno.

Crie um arquivo de classe java chamado JacksonTester em C:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

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

API de streaming

A API de streaming lê e grava conteúdo JSON como eventos discretos. JsonParser lê os dados, enquanto JsonGenerator grava os dados. É a abordagem mais poderosa entre as três, com menor sobrecarga e mais rápida em operações de leitura / gravação. É um analisador analógico para Stax para XML.

Neste artigo, mostraremos o uso de APIs de streaming de Jackson para ler e gravar dados JSON. A API de streaming funciona com o conceito de token e todos os detalhes do Json devem ser tratados com cuidado. A seguir estão duas classes que usaremos nos exemplos:

  • JsonGenerator - Grave em JSON String.

  • JsonParser - Analisar string JSON.

Escrever JSON usando JsonGenerator

Usar JsonGenerator é muito simples. Primeiro crie o JsonGenerator usando o método JsonFactory.createJsonGenerator () e use seus métodos write *** () para escrever cada valor 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");

Vamos ver o JsonGenerator em ação. Crie um arquivo de classe java chamado JacksonTester emC:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

Mahesh Kumar
21
false
[100, 90, 85]

Lendo JSON usando JsonParser

Usar JsonParser é novamente muito simples. Primeiro crie o JsonParser usando o método JsonFactory.createJsonParser () e use seus métodos nextToken () para ler cada string json como um token. Verifique cada token e processe de acordo

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

Vamos ver o JsonParser em ação. Crie um arquivo de classe java chamado JacksonTester emC:\>Jackson_WORKSPACE.

Arquivo: 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

Compile as classes usando javac compilador da seguinte forma:

C:\Jackson_WORKSPACE>javac JacksonTester.java

Agora execute o jacksonTester para ver o resultado:

C:\Jackson_WORKSPACE>java JacksonTester

Verifique a saída

Mahesh Kumar
21
false
[100, 90, 85]

Classe JsonGenerator

Introdução

JsonParser é a classe base para definir API pública para leitura de conteúdo Json. As instâncias são criadas usando métodos de fábrica de uma instância JsonFactory.

Declaração de classe

A seguir está a declaração para org.codehaus.jackson.JsonParser classe:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

Classes aninhadas

SN Classe e descrição
1 static class JsonParser.Feature
Enumeração que define todos os recursos alternáveis ​​para analisadores.
2 static class JsonParser.NumberType
Enumeração de possíveis tipos "nativos" (ideais) que podem ser usados ​​para números.

Campos

  • protected PrettyPrinter _cfgPrettyPrinter - Objeto que lida com impressão bonita (geralmente espaço em branco adicional para tornar os resultados mais legíveis) durante a saída.

  • protected JsonToken _currToken - Último token recuperado via nextToken (), se houver.

  • protected int _features - Sinalizador de bit composto de bits que indicam quais JsonParser.Features estão habilitados.

  • protected JsonToken _lastClearedToken - Último token limpo, se houver: ou seja, o valor que estava em vigor quando clearCurrentToken () foi chamado.

Construtores

SN Construtor e descrição
1 protected JsonParser()
Construtor padrão
2 protected JsonParser(int features)

Métodos de aula

SN Método e Descrição
1 protected void _reportError(String msg) - Método auxiliar usado para construir e lançar JsonGenerationException com a mensagem base fornecida.
2 protected void _reportUnsupportedOperation()
3 protected void _throwInternal()
4 protected void _writeSimpleObject(Object value)- Método auxiliar para tentar chamar o método de gravação apropriado para um determinado objeto não tipado.
5 boolean canOmitFields() - Método de introspecção para chamar para verificar se está ok para omitir a escrita de campos de objeto ou não.
6 boolean canUseSchema(FormatSchema schema) - Método que pode ser usado para verificar se determinado esquema pode ser usado com este gerador (usando setSchema (com.fasterxml.jackson.core.FormatSchema)).
7 boolean canWriteBinaryNatively()- Método de introspecção que pode ser chamado para ver se o formato de dados subjacente suporta dados binários "nativos"; ou seja, uma saída eficiente de conteúdo binário sem codificação.
8 boolean canWriteObjectId() - Método de introspecção que pode ser chamado para ver se o formato de dados subjacente suporta algum tipo de Ids de objeto nativamente (muitos não; por exemplo, JSON não).
9 boolean canWriteTypeId() - Método de introspecção que pode ser chamado para ver se o formato de dados subjacente suporta algum tipo de IDs de tipo nativamente (muitos não; por exemplo, JSON não).
10 abstract void close() - Método chamado para fechar este gerador, para que nenhum conteúdo mais possa ser escrito.
11 JsonGenerator configure(JsonGenerator.Feature f, boolean state) - Método para ativar ou desativar o recurso especificado: verifique JsonGenerator.Feature para obter a lista de recursos disponíveis.
12 void copyCurrentEvent(JsonParser jp) - Método para copiar o conteúdo do evento atual para o qual a determinada instância do analisador aponta.
13 void copyCurrentStructure(JsonParser jp) - Método para copiar o conteúdo do evento atual e os eventos seguintes que ele inclui a instância do analisador fornecida aponta.
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) - Método para ativar os recursos do analisador especificados: verifique JsonGenerator.Feature para obter a lista de recursos disponíveis.
16 abstract void flush() - Método chamado para liberar qualquer conteúdo em buffer para o destino subjacente (fluxo de saída, gravador) e para liberar o próprio destino também.
17 CharacterEscapes getCharacterEscapes() - Método para acessar o uso de fábrica de escapes personalizados para JsonGenerators que ele cria.
18 abstract ObjectCodec getCodec() - Método para acessar o objeto usado para escrever o objeto Java como conteúdo Json (usando o método writeObject (java.lang.Object)).
19 abstract int getFeatureMask() - Método de acesso em massa para obter o estado de todos os JsonGenerator.Features padrão.
20 int getHighestEscapedChar() - Método de acesso para testar qual é o maior caractere sem escape configurado para este gerador.
21 abstract JsonStreamContext getOutputContext()
22 Object getOutputTarget()- Método que pode ser usado para obter acesso ao objeto que é usado como destino para a saída gerada; geralmente é OutputStream ou Writer, dependendo de qual gerador foi construído.
23 PrettyPrinter getPrettyPrinter()- Accessor para verificar se este gerador possui uma PrettyPrinter configurada; retorna em caso afirmativo, nulo se nenhum configurado.
24 FormatSchema getSchema() - Método para acessar o Schema que este analisador usa, se houver.
25 abstract boolean isClosed() - Método que pode ser chamado para determinar se este gerador está fechado ou não.
26 abstract boolean isEnabled(JsonGenerator.Feature f) - Método para verificar se determinado recurso está ativado.
27 JsonGenerator setCharacterEscapes(CharacterEscapes esc)-Método para definir usos de fábrica de escapes personalizados para JsonGenerators que ele cria.
28 abstract JsonGenerator setCodec(ObjectCodec oc)- Método que pode ser chamado para definir ou redefinir o objeto a ser usado para escrever objetos Java como JsonContent (usando o método writeObject (java.lang.Object)).
29 abstract JsonGenerator setFeatureMask(int mask)-Método de conjunto em massa para (re) definir estados de todos os JsonGenerator.Features padrão
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) - Método para configurar uma impressora bonita personalizada, que geralmente é usado para adicionar recuo para facilitar a leitura humana.
32 JsonGenerator setRootValueSeparator(SerializableString sep) - Método que permite substituir String usada para separar valores JSON de nível raiz (o padrão é um único caractere de espaço)
33 void setSchema(FormatSchema schema) - Método para chamar para fazer este gerador usar o esquema especificado.
33 abstract JsonGenerator useDefaultPrettyPrinter()- Método de conveniência para habilitar a impressão bonita usando a impressora bonita padrão (DefaultPrettyPrinter).
34 abstract Version version()- Acessador para descobrir a versão do pacote que forneceu esta instância do gerador.
35 void writeArrayFieldStart(String fieldName)- Método de conveniência para a saída de uma entrada de campo ("membro") (que conterá um valor de matriz JSON) e o marcador START_ARRAY.
36 abstract void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)- Método que produzirá um dado bloco de dados binários como codificado em base64, como um valor String completo (entre aspas duplas).
37 abstract int writeBinary(Base64Variant b64variant, InputStream data, int dataLength) - Método semelhante a writeBinary (Base64Variant, byte [], int, int), mas onde a entrada é fornecida por meio de um fluxo, permitindo gravações incrementais sem manter toda a entrada na memória.
38 void writeBinary(byte[] data)- Semelhante a writeBinary (Base64Variant, byte [], int, int), mas assume o padrão de usar a variante Base64 padrão de Jackson (que é Base64Variants.MIME_NO_LINEFEEDS).
39 void writeBinary(byte[] data, int offset, int len) - Semelhante a writeBinary (Base64Variant, byte [], int, int), mas o padrão é usar a variante Base64 padrão de Jackson (que é Base64Variants.MIME_NO_LINEFEEDS).
40 int writeBinary(InputStream data, int dataLength) - Semelhante a writeBinary (Base64Variant, InputStream, int), mas assume como padrão o uso da variante Base64 padrão de Jackson (que é Base64Variants.MIME_NO_LINEFEEDS).
41 void writeBinaryField(String fieldName, byte[] data) - Método de conveniência para a saída de uma entrada de campo ("membro") que contém dados especificados na forma codificada em base64.
42 abstract void writeBoolean(boolean state) - Método para a saída de valor booleano Json literal (um dos Strings 'true' e 'false').
43 void writeBooleanField(String fieldName, boolean value) - Método de conveniência para a saída de uma entrada de campo ("membro") que possui um valor booleano.
44 abstract void writeEndArray() - Método para escrever o marcador de fechamento de um valor JSON Array (caractere ']'; mais a decoração de espaço em branco possível se a impressão bonita estiver habilitada).
45 abstract void writeEndObject() - Método para escrever o marcador de fechamento de um valor de objeto JSON (caractere '}'; mais a decoração de espaço em branco possível se a impressão bonita estiver habilitada).
46 abstract void writeFieldName(SerializableString name) - Método semelhante a writeFieldName (String), a principal diferença é que pode funcionar melhor, já que parte do processamento (como citar certos caracteres ou codificação em codificação externa se suportada pelo gerador) pode ser feito apenas uma vez e reutilizado para chamadas posteriores.
47 abstract void writeFieldName(String name) - Método para escrever um nome de campo (String JSON entre aspas duplas: sintaticamente idêntico a um valor String JSON), possivelmente decorado por um espaço em branco se a impressão bonita estiver habilitada.
48 abstract void writeNull() - Método para saída de valor nulo Json literal.
49 void writeNullField(String fieldName) - Método de conveniência para a saída de uma entrada de campo ("membro") que tem valor literal JSON nulo.
50 abstract void writeNumber(BigDecimal dec) - O método de saída indica o valor numérico Json.
51 abstract void writeNumber(BigInteger v) - Método para enviar o valor fornecido como número Json.
52 abstract void writeNumber(double d) - O método de saída indica o valor numérico Json.
53 abstract void writeNumber(float f) - O método de saída indica o valor numérico Json.
54 abstract void writeNumber(int v) - Método para enviar o valor fornecido como número Json.
55 abstract void writeNumber(long v) - Método para enviar o valor fornecido como número Json.
56 void writeNumber(short v) - Método para enviar o valor fornecido como número Json.
57 abstract void writeNumber(String encodedValue) - Método de gravação que pode ser usado para tipos numéricos personalizados que não podem ser (facilmente?) Convertidos em tipos de número Java "padrão".
58 void writeNumberField(String fieldName, BigDecimal value) - Método de conveniência para a saída de uma entrada de campo ("membro") que possui o valor numérico especificado.
59 void writeNumberField(String fieldName, double value) - Método de conveniência para a saída de uma entrada de campo ("membro") que possui o valor numérico especificado.
60 void writeNumberField(String fieldName, float value) - Método de conveniência para a saída de uma entrada de campo ("membro") que possui o valor numérico especificado.
61 void writeNumberField(String fieldName, int value) - Método de conveniência para a saída de uma entrada de campo ("membro") que possui o valor numérico especificado.
62 void writeNumberField(String fieldName, long value) - Método de conveniência para a saída de uma entrada de campo ("membro") que possui o valor numérico especificado.
63 abstract void writeObject(Object pojo) - Método para escrever determinado objeto Java (POJO) como Json.
64 void writeObjectField(String fieldName, Object pojo) - Método de conveniência para a saída de uma entrada de campo ("membro") que tem conteúdo de objeto Java específico como seu valor.
65 void writeObjectFieldStart(String fieldName) - Método de conveniência para a saída de uma entrada de campo ("membro") (que conterá um valor de objeto JSON) e o marcador START_OBJECT.
66 void writeObjectId(Object id) - Método que pode ser chamado para gerar a chamada Id de objeto nativo.
67 void writeObjectRef(Object id) - Método que pode ser chamado para referências de saída para Ids de objeto nativos.
68 void writeOmittedField(String fieldName) Method called to indicate that a property in this position was skipped.
69 abstract void writeRaw(char c) - Método que forçará o gerador a copiar o texto de entrada literalmente sem modificações (incluindo que nenhum escape é feito e nenhum separador é adicionado, mesmo se o contexto [array, objeto] exigir isso).
70 abstract void writeRaw(char[] text, int offset, int len) - Método que forçará o gerador a copiar o texto de entrada literalmente sem modificações (incluindo que nenhum escape é feito e nenhum separador é adicionado, mesmo se o contexto [array, objeto] exigir isso).
71 void writeRaw(SerializableString raw) - Método que forçará o gerador a copiar o texto de entrada literalmente sem modificações (incluindo que nenhum escape é feito e nenhum separador é adicionado, mesmo se o contexto [array, objeto] exigir isso).
72 abstract void writeRaw(String text) - Método que forçará o gerador a copiar o texto de entrada literalmente sem modificações (incluindo que nenhum escape é feito e nenhum separador é adicionado, mesmo se o contexto [array, objeto] exigir isso).
73 abstract void writeRaw(String text, int offset, int len) - Método que forçará o gerador a copiar o texto de entrada literalmente sem modificações (incluindo que nenhum escape é feito e nenhum separador é adicionado, mesmo se o contexto [array, objeto] exigir isso).
74 abstract void writeRawUTF8String(byte[] text, int offset, int length) - Método semelhante a writeString (String), mas que recebe como entrada uma String codificada em UTF-8 que deve ser gerada como está, sem escape adicional (o tipo depende do formato dos dados; barras invertidas para JSON).
75 abstract void writeRawValue(char[] text, int offset, int len)
76 abstract void writeRawValue(String text)- Método que forçará o gerador a copiar texto de entrada literalmente sem nenhuma modificação, mas assumindo que deve constituir um único valor JSON válido (número, string, booleano, nulo, Array ou Lista).
77 abstract void writeRawValue(String text, int offset, int len)
78 abstract void writeStartArray()- Método para escrever o marcador inicial de um valor JSON Array (caractere '['; mais decoração de espaço em branco possível se a impressão bonita estiver habilitada).
79 abstract void writeStartObject() - Método para escrever o marcador inicial de um valor de objeto JSON (caractere '{'; mais decoração de espaço em branco possível se a impressão bonita estiver habilitada).
80 abstract void writeString(char[] text, int offset, int len) - Método para emitir um valor String.
81 abstract void writeString(SerializableString text) - Método semelhante a writeString (String), mas que usa SerializableString, o que pode tornar isso potencialmente mais eficiente para chamar como gerador pode ser capaz de reutilizar a representação entre aspas e / ou codificada.
82 abstract void writeString(String text) - Método para emitir um valor String.
83 void writeStringField(String fieldName, String value) - Método de conveniência para a saída de uma entrada de campo ("membro") que possui um valor String.
84 abstract void writeTree(TreeNode rootNode) - Método para escrever determinada árvore JSON (expressa como uma árvore em que o JsonNode fornecido é a raiz) usando este gerador.
85 void writeTypeId(Object id) - Método que pode ser chamado para produzir o chamado ID de tipo nativo.
86 abstract void writeUTF8String(byte[] text, int offset, int length) - Método semelhante a writeString (String), mas que leva como entrada uma String codificada em UTF-8 que não foi escapada usando qualquer esquema de escape de formato de dados requerido (para JSON que é uma barra invertida para caracteres de controle e aspas duplas; para outros formata outra coisa).

Métodos herdados

Esta classe herda métodos das seguintes classes:

  • java.lang.Object

Classe JsonParser

Introdução

JsonParser é a classe base para definir API pública para leitura de conteúdo Json. As instâncias são criadas usando métodos de fábrica de uma instância JsonFactory.

Declaração de classe

A seguir está a declaração para com.fasterxml.jackson.core.JsonParser classe:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

Classes aninhadas

SN Classe e descrição
1 static class JsonParser.Feature
Enumeração que define todos os recursos alternáveis ​​para analisadores.
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