Compartilhar via


JsonReader Classe

  • java.lang.Object
    • com.azure.json.JsonReader

Implementações

public abstract class JsonReader
implements Closeable

Lê um valor JSON como um fluxo de tokens.

As instâncias de JsonReader são criadas usando uma instância de JsonProvider ou usando os métodos de utilitário em JsonProviders.

Resumo do Construtor

Construtor Description
JsonReader()

Cria uma instância de JsonReader.

Resumo do método

Modificador e tipo Método e descrição
final T getNullable(ReadValueCallback<JsonReader,T> nonNullGetter)

Método de conveniência para ler um tipo anulável.

final List<T> readArray(ReadValueCallback<JsonReader,T> elementReaderFunc)

Lê uma matriz JSON.

final Map<String,T> readMap(ReadValueCallback<JsonReader,T> valueReaderFunc)

Lê um mapa JSON.

final T readObject(ReadValueCallback<JsonReader,T> objectReaderFunc)

Lê um objeto JSON.

abstract JsonReader bufferObject()

Lê e retorna o objeto JSON atual para o qual o JsonReader está apontando.

abstract void close()

Fecha o fluxo JSON.

abstract JsonToken currentToken()

Obtém o JsonToken que o leitor aponta atualmente.

abstract byte[] getBinary()

Obtém o valor binário se o leitor estiver apontando para um STRING token no momento.

abstract boolean getBoolean()

Obtém o valor booliano se o leitor estiver apontando para um BOOLEAN token no momento.

abstract double getDouble()

Obtém o valor duplo se o leitor estiver apontando para um NUMBER ou STRING.

abstract String getFieldName()

Obtém o nome do campo se o leitor estiver apontando para um FIELD_NAME.

abstract float getFloat()

Obtém o valor float se o leitor estiver apontando para um NUMBER ou STRING.

abstract int getInt()

Obtém o valor int se o leitor estiver apontando para um NUMBER ou STRING.

abstract long getLong()

Obtém o valor longo se o leitor estiver apontando para um NUMBER ou STRING.

String getRawText()

Obtém o valor de texto bruto para o currentToken().

abstract String getString()

Obtém o valor String se o leitor estiver apontando para um BOOLEAN, NULL, NUMBERou STRING.

final String getText()

Obtém o valor de texto para o currentToken().

final boolean isEndArrayOrObject()

Se o currentToken() é END_ARRAY ou END_OBJECT.

abstract boolean isResetSupported()

Indica se o dá suporte reset()a JsonReader .

final boolean isStartArrayOrObject()

Seja o currentToken() ou START_ARRAYSTART_OBJECT.

abstract JsonToken nextToken()

Itera para e retorna o próximo JsonToken no valor codificado em JSON.

final String readChildren()

Lerá recursivamente o sub-fluxo do token JSON se o token atual for START_ARRAY ou START_OBJECT.

final void readChildren(StringBuilder buffer)

Lerá recursivamente o sub-fluxo do token JSON se o token atual estiver START_ARRAY ou START_OBJECT no passado StringBuilder.

final String readRemainingFieldsAsJsonObject()

Lê os campos restantes no objeto JSON atual como um objeto JSON.

final void readRemainingFieldsAsJsonObject(StringBuilder buffer)

Lê os campos restantes no objeto JSON atual como um objeto JSON.

final Object readUntyped()

Lê um objeto não tipado.

abstract JsonReader reset()

Cria uma nova JsonReader redefinição para o início do fluxo JSON.

abstract void skipChildren()

Ignora recursivamente o sub-fluxo do token JSON se o token atual for START_ARRAY ou START_OBJECT.

Métodos herdados de java.lang.Object

Detalhes do construtor

JsonReader

public JsonReader()

Cria uma instância de JsonReader.

Detalhes do método

getNullable

public final T getNullable(ReadValueCallback nonNullGetter)

Método de conveniência para ler um tipo anulável.

Se o currentToken() for NULL nulo for retornado, caso contrário, isso JsonReader será passado para a nonNullGetter função para obter o valor. Efetivamente, essa é a forma genérica dos métodos get*NullableValue.

Parameters:

nonNullGetter - Função que lê o valor JSON não nulo.

Returns:

nulo se o currentToken() for NULL ou o valor retornado por nonNullGetter.

Throws:

IOException

- Se o próximo valor não puder ser lido como um valor anulável.

readArray

public final List readArray(ReadValueCallback elementReaderFunc)

Lê uma matriz JSON.

Se o currentToken() for nulo, isso será nextToken(). Se o token inicial ainda for nulo ou NULL nulo será retornado. Se o token for algo diferente de START_ARRAY um IllegalStateException será lançado.

Depois que o fluxo JSON estiver preparado para a leitura do elemento, isso obterá o token de elemento e o passará JsonReader para o elementReaderFunc para manipular a leitura do elemento da matriz. Se a matriz não tiver elementos, uma lista vazia será retornada.

Se um objeto JSON deve ser usado readObject(ReadValueCallback<JsonReader,T> objectReaderFunc) para leitura ou se um mapa JSON deve ser lido, use readMap(ReadValueCallback<JsonReader,T> valueReaderFunc).

Parameters:

elementReaderFunc - Função que lê cada elemento da matriz.

Returns:

A matriz JSON de leitura ou nula se o JsonToken for nulo ou NULL.

Throws:

IOException

- Se o token não JsonToken#START_ARRAYfor , JsonToken#NULLou nulo.

readMap

public final Map readMap(ReadValueCallback valueReaderFunc)

Lê um mapa JSON.

Se o currentToken() for nulo, isso será nextToken(). Se o token inicial ainda for nulo ou NULL nulo será retornado. Se o token for algo diferente de START_OBJECT um IllegalStateException será lançado.

Depois que o fluxo JSON estiver preparado para leitura de chave-valor, isso obterá o próximo token e lerá o nome do campo como a chave e, em seguida, obterá o próximo token depois disso e o passará JsonReader para o valueReaderFunc para manipular a leitura do valor do par chave-valor. Se o objeto não tiver elementos, um mapa vazio será retornado.

Se um objeto JSON deve ser usado readObject(ReadValueCallback<JsonReader,T> objectReaderFunc) de leitura ou se uma matriz JSON deve ser lida, use readArray(ReadValueCallback<JsonReader,T> elementReaderFunc).

Parameters:

valueReaderFunc - Função que lê cada valor do par chave-valor.

Returns:

O mapa JSON de leitura ou nulo se o JsonToken for nulo ou NULL.

Throws:

IOException

- Se o token não JsonToken#START_OBJECTfor , JsonToken#NULLou nulo.

readObject

public final T readObject(ReadValueCallback objectReaderFunc)

Lê um objeto JSON.

Se o currentToken() for nulo, isso será nextToken(). Se o token inicial ainda for nulo ou NULL nulo será retornado. Se o token for algo diferente de START_OBJECT um IllegalStateException será lançado.

Depois que o fluxo JSON estiver preparado para a leitura do objeto, isso obterá o próximo token e o passará JsonReader para o objectReaderFunc para manipular a leitura do objeto.

Se uma matriz JSON deve ser usada readArray(ReadValueCallback<JsonReader,T> elementReaderFunc) para leitura ou se um mapa JSON deve ser lido, use readMap(ReadValueCallback<JsonReader,T> valueReaderFunc).

Parameters:

objectReaderFunc - Função que lê cada valor do par chave-valor.

Returns:

O objeto JSON de leitura ou nulo se o JsonToken for nulo ou NULL.

Throws:

IOException

- Se o token não JsonToken#START_OBJECTfor , JsonToken#NULLou nulo.

bufferObject

public abstract JsonReader bufferObject()

Lê e retorna o objeto JSON atual para o qual o JsonReader está apontando. Isso modificará o local atual deste JsonReader.

Se o currentToken() não START_OBJECT for ou FIELD_NAME um IllegalStateException será lançado.

Se o currentToken() for FIELD_NAME , isso criará um objeto JSON em que o primeiro campo JSON é o currentToken() campo, o que significa que isso pode ser chamado do meio de um objeto JSON para criar um novo objeto JSON com apenas um subconjunto de campos (aqueles restantes de quando o método é chamado).

O retornado JsonReader pode ser reset() capaz de reproduzir o fluxo JSON subjacente.

Returns:

O objeto JSON em buffer para o qual o JsonReader estava apontando.

Throws:

IOException

- Se o #currentToken() não JsonToken#START_OBJECT for ou JsonToken#FIELD_NAME seguido por JsonToken#START_OBJECT

close

public abstract void close()

Fecha o fluxo JSON.

Throws:

IOException

- Se o repositório de conteúdo subjacente não for fechado.

currentToken

public abstract JsonToken currentToken()

Obtém o JsonToken que o leitor aponta atualmente.

Retornará nulo se o leitor não estiver apontando para um token. Isso acontece se o leitor não começou a ler o valor JSON ou se a leitura do valor JSON foi concluída.

Returns:

O JsonToken que o leitor aponta atualmente ou nulo se o leitor não estiver apontando para um token.

getBinary

public abstract byte[] getBinary()

Obtém o valor binário se o leitor estiver apontando para um STRING token no momento.

Isso retorna o equivalente a Base64#getDecoder()Base64.Decoder#decode(String).

Se o leitor estiver apontando para um NULL nulo, será retornado. Se o leitor estiver apontando para qualquer outro tipo de token, um IllegalStateException será gerado.

Returns:

O valor binário com base em se o token atual é STRING ou NULL.

Throws:

IOException

- Se o leitor não estiver apontando para ou JsonToken#STRINGJsonToken#NULL.

getBoolean

public abstract boolean getBoolean()

Obtém o valor booliano se o leitor estiver apontando para um BOOLEAN token no momento.

Se o leitor estiver apontando para qualquer outro tipo de token, um IllegalStateException será gerado.

Se Boolean for necessário ler, use getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

O valor booliano com base no BOOLEAN.

Throws:

IOException

- Se o leitor não estiver apontando para JsonToken#BOOLEAN.

getDouble

public abstract double getDouble()

Obtém o valor duplo se o leitor estiver apontando para um NUMBER ou STRING.

STRING gerará um NumberFormatException se o valor da cadeia de caracteres subjacente não puder ser convertido em um duplo.

Todos os outros JsonToken tipos gerarão um IllegalStateException.

Se Double for necessário ler, use getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

O valor duplo com base no token atual.

Throws:

IOException

- Se o token atual for um JsonToken#STRING e não puder ser convertido em um duplo.

getFieldName

public abstract String getFieldName()

Obtém o nome do campo se o leitor estiver apontando para um FIELD_NAME.

Todos os outros JsonToken tipos gerarão um IllegalStateException.

Returns:

O nome do campo com base no token atual.

Throws:

IOException

- Se o token atual não for um JsonToken#FIELD_NAME.

getFloat

public abstract float getFloat()

Obtém o valor float se o leitor estiver apontando para um NUMBER ou STRING.

STRING gerará um NumberFormatException se o valor da cadeia de caracteres subjacente não puder ser convertido em um float.

Todos os outros JsonToken tipos gerarão um IllegalStateException.

Se Float for necessário ler, use getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

O valor float com base no token atual.

Throws:

IOException

- Se o token atual for um JsonToken#STRING e não puder ser convertido em um float.

getInt

public abstract int getInt()

Obtém o valor int se o leitor estiver apontando para um NUMBER ou STRING.

STRING gerará um NumberFormatException se o valor da cadeia de caracteres subjacente não puder ser convertido em um int.

Todos os outros JsonToken tipos gerarão um IllegalStateException.

Se Integer for necessário ler, use getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

O valor int com base no token atual.

Throws:

IOException

- Se o token atual for um JsonToken#STRING e não puder ser convertido em um int.

getLong

public abstract long getLong()

Obtém o valor longo se o leitor estiver apontando para um NUMBER ou STRING.

STRING gerará um NumberFormatException se o valor da cadeia de caracteres subjacente não puder ser convertido em um long.

Todos os outros JsonToken tipos gerarão um IllegalStateException.

Se Long for necessário ler, use getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

O valor longo com base no token atual.

Throws:

IOException

- Se o token atual for um JsonToken#STRING e não puder ser convertido em um long.

getRawText

public String getRawText()

Obtém o valor de texto bruto para o currentToken().

Veja a seguir como cada JsonToken tipo é tratado:

Se o token atual for nulo, um IllegalStateException será lançado.

Returns:

O valor de texto bruto para o currentToken().

Throws:

IOException

- Se o token atual for nulo.

getString

public abstract String getString()

Obtém o valor String se o leitor estiver apontando para um BOOLEAN, NULL, NUMBERou STRING.

Se o token atual for um BOOLEANou NUMBER a representação String do valor será retornada. Se o token atual for NULL nulo, será retornado.

Todos os outros JsonToken tipos gerarão um IllegalStateException.

Returns:

O valor string com base no token atual.

Throws:

IOException

- Se o token atual não for , JsonToken#BOOLEANJsonToken#NULL, JsonToken#NUMBERou JsonToken#STRING.

getText

public final String getText()

Obtém o valor de texto para o currentToken().

Veja a seguir como cada JsonToken tipo é tratado:

Se o token atual for nulo, um IllegalStateException será lançado.

Returns:

O valor de texto para o currentToken().

Throws:

IOException

- Se o token atual for nulo.

isEndArrayOrObject

public final boolean isEndArrayOrObject()

Se o currentToken() é END_ARRAY ou END_OBJECT.

Returns:

isResetSupported

public abstract boolean isResetSupported()

Indica se o dá suporte reset()a JsonReader .

Returns:

Se reset() há suporte para .

isStartArrayOrObject

public final boolean isStartArrayOrObject()

Seja o currentToken() ou START_ARRAYSTART_OBJECT.

Returns:

nextToken

public abstract JsonToken nextToken()

Itera para e retorna o próximo JsonToken no valor codificado em JSON.

Retorna nulo se a iteração para o próximo token concluir a leitura do valor codificado em JSON.

Returns:

O próximo JsonToken no valor codificado em JSON ou nulo se a leitura for concluída.

Throws:

IOException

- Se o próximo token não puder ser determinado.

readChildren

public final String readChildren()

Lerá recursivamente o sub-fluxo do token JSON se o token atual for START_ARRAY ou START_OBJECT.

Se o currentToken() não START_OBJECT for ou START_ARRAY nada será lido.

Returns:

O valor textual bruto do sub-fluxo do token JSON.

Throws:

IOException

- Se os filhos não puderem ser lidos.

readChildren

public final void readChildren(StringBuilder buffer)

Lerá recursivamente o sub-fluxo do token JSON se o token atual estiver START_ARRAY ou START_OBJECT no passado StringBuilder.

Se o currentToken() não START_OBJECT for ou START_ARRAY nada será lido.

Parameters:

buffer - O StringBuilder em que o sub-fluxo de leitura será gravado.

Throws:

IOException

- Se buffer for nulo.

readRemainingFieldsAsJsonObject

public final String readRemainingFieldsAsJsonObject()

Lê os campos restantes no objeto JSON atual como um objeto JSON.

Se o currentToken() for START_OBJECT , isso funcionará da mesma forma que readChildren(). Se o currentToken() for FIELD_NAME , isso criará um objeto JSON em que o primeiro campo é o campo atual e lerá os campos restantes no objeto JSON.

Se o currentToken() não START_OBJECT for ou FIELD_NAME nada será lido.

Returns:

O valor textual bruto dos campos JSON restantes.

Throws:

IOException

- Se os campos JSON restantes não puderem ser lidos.

readRemainingFieldsAsJsonObject

public final void readRemainingFieldsAsJsonObject(StringBuilder buffer)

Lê os campos restantes no objeto JSON atual como um objeto JSON.

Se o currentToken() for START_OBJECT , isso funcionará da mesma forma que readChildren(StringBuilder buffer). Se o currentToken() for FIELD_NAME , isso criará um objeto JSON em que o primeiro campo é o campo atual e lerá os campos restantes no objeto JSON.

Se o currentToken() não START_OBJECT for ou FIELD_NAME nada será lido.

Parameters:

buffer - O StringBuilder em que os campos JSON restantes serão gravados.

Throws:

IOException

- Se buffer for nulo.

readUntyped

public final Object readUntyped()

Lê um objeto não tipado.

Se o currentToken() for nulo, isso será nextToken().

Se o token inicial for END_ARRAY, END_OBJECTou FIELD_NAME um IllegalStateException será gerado, pois esses são pontos de partida inválidos para ler um tipo desconhecido. Se o objeto não tipado estiver profundamente aninhado, um IllegalStateException também será lançado para evitar uma exceção de estouro de pilha.

O objeto retornado será um dos seguintes:

  • nulo se o token inicial for nulo ou NULL
  • true ou false se o token inicial for BOOLEAN
  • Um dos int, long, float ou double é o token inicial é NUMBER, o menor valor que contém será usado se o número for um inteiro
  • Uma matriz de elementos não tipado se o ponto de partida for START_ARRAY
  • Um mapa de valor sem tipo de cadeia de caracteres se o ponto de partida for START_OBJECT

Returns:

O valor não tipado com base nos tipos de retorno descritos acima.

Throws:

IOException

- Se o ponto de partida do objeto for JsonToken#END_ARRAY, JsonToken#END_OBJECTou JsonToken#FIELD_NAME ou se o objeto não tipado estiver profundamente aninhado.

reset

public abstract JsonReader reset()

Cria uma nova JsonReader redefinição para o início do fluxo JSON.

Use isResetSupported() para determinar se o JsonReader pode ser redefinido. Se a redefinição for chamada e não houver suporte, um IllegalStateException será gerado.

Returns:

Uma nova JsonReader redefinição para o início do fluxo JSON.

Throws:

IOException

- Se a redefinição não for compatível com o JsonReader atual.

skipChildren

public abstract void skipChildren()

Ignora recursivamente o sub-fluxo do token JSON se o token atual for START_ARRAY ou START_OBJECT.

Se o token atual não for o início de uma matriz ou objeto, esse método será uma operação não operada.

Throws:

IOException

- Se os filhos não puderem ser ignorados.

Aplica-se a