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.
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