Freigeben über


JsonReader Klasse

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

Implementiert

public abstract class JsonReader
implements Closeable

Liest einen JSON-Wert als Datenstrom von Token.

Instanzen von JsonReader werden mithilfe eines instance von JsonProvider oder mit den Hilfsprogrammmethoden in JsonProviderserstellt.

Zusammenfassung zum Konstruktor

Konstruktor Beschreibung
JsonReader()

Erstellt eine Instanz von JsonReader.

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
final T getNullable(ReadValueCallback<JsonReader,T> nonNullGetter)

Convenience-Methode zum Lesen eines Nullable-Typs.

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

Liest ein JSON-Array.

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

Liest eine JSON-Zuordnung.

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

Liest ein JSON-Objekt.

abstract JsonReader bufferObject()

Liest das aktuelle JSON-Objekt, auf das der zeigt, und gibt es JsonReader zurück.

abstract void close()

Schließt den JSON-Stream.

abstract JsonToken currentToken()

Ruft die JsonToken ab, auf die der Leser derzeit verweist.

abstract byte[] getBinary()

Ruft den binärwert ab, wenn der Leser derzeit auf ein STRING Token zeigt.

abstract boolean getBoolean()

Ruft den booleschen Wert ab, wenn der Leser derzeit auf ein BOOLEAN Token zeigt.

abstract double getDouble()

Ruft den Double-Wert ab, wenn der Leser derzeit auf ein NUMBER oder STRINGzeigt.

abstract String getFieldName()

Ruft den Feldnamen ab, wenn der Leser derzeit auf einen FIELD_NAMEzeigt.

abstract float getFloat()

Ruft den float-Wert ab, wenn der Leser derzeit auf ein NUMBER oder STRINGzeigt.

abstract int getInt()

Ruft den wert int ab, wenn der Leser derzeit auf ein NUMBER oder STRINGzeigt.

abstract long getLong()

Ruft den long-Wert ab, wenn der Leser derzeit auf ein NUMBER oder STRINGzeigt.

String getRawText()

Ruft den Unformatierten Textwert für den currentToken()ab.

abstract String getString()

Ruft den Wert String ab, wenn der Leser derzeit auf ein BOOLEAN, NULL, NUMBERoder STRINGzeigt.

final String getText()

Ruft den Textwert für ab currentToken().

final boolean isEndArrayOrObject()

Gibt an, ob oder currentToken() ist END_ARRAYEND_OBJECT.

abstract boolean isResetSupported()

Gibt an, ob unterstützt wird JsonReaderreset().

final boolean isStartArrayOrObject()

Gibt an, ob oder currentToken() ist START_ARRAYSTART_OBJECT.

abstract JsonToken nextToken()

Durchläuft und gibt die nächste JsonToken im JSON-codierten Wert zurück.

final String readChildren()

Liest rekursiv den JSON-Token-Substream, wenn das aktuelle Token entweder START_ARRAY oder START_OBJECTist.

final void readChildren(StringBuilder buffer)

Liest rekursiv den JSON-Tokenunterstrom, wenn das aktuelle Token entweder START_ARRAY oder START_OBJECT im übergebenen StringBuilderist.

final String readRemainingFieldsAsJsonObject()

Liest die verbleibenden Felder im aktuellen JSON-Objekt als JSON-Objekt.

final void readRemainingFieldsAsJsonObject(StringBuilder buffer)

Liest die verbleibenden Felder im aktuellen JSON-Objekt als JSON-Objekt.

final Object readUntyped()

Liest ein nicht typisiertes Objekt.

abstract JsonReader reset()

Erstellt eine neue JsonReader Zurücksetzung am Anfang des JSON-Datenstroms.

abstract void skipChildren()

Überspringt rekursiv den JSON-Tokenunterstream, wenn das aktuelle Token entweder START_ARRAY oder START_OBJECTist.

Geerbte Methoden von java.lang.Object

Details zum Konstruktor

JsonReader

public JsonReader()

Erstellt eine Instanz von JsonReader.

Details zur Methode

getNullable

public final T getNullable(ReadValueCallback nonNullGetter)

Convenience-Methode zum Lesen eines Nullable-Typs.

Wenn null currentToken() ist NULL , wird zurückgegeben, andernfalls wird dies JsonReader an die nonNullGetter Funktion übergeben, um den Wert abzurufen. Effektiv ist dies die generische Form der get*NullableValue-Methoden.

Parameters:

nonNullGetter - Funktion, die den JSON-Wert ungleich NULL liest.

Returns:

null, wenn der currentToken() oder der von nonNullGetterzurückgegebene Wert istNULL.

Throws:

IOException

- Wenn der nächste Wert nicht als NULLable gelesen werden kann.

readArray

public final List readArray(ReadValueCallback elementReaderFunc)

Liest ein JSON-Array.

Wenn null currentToken() ist, wird dies ausgeführt nextToken(). Wenn das Starttoken weiterhin NULL oder NULL NULL ist, wird zurückgegeben. Wenn das Token etwas anderes START_ARRAY als ein IllegalStateException ist, wird ausgelöst.

Sobald der JSON-Stream für das Lesen von Elementen vorbereitet ist, wird das Elementtoken abgerufen und an das übergeben JsonReader , elementReaderFunc um das Lesen des Elements des Arrays zu verarbeiten. Wenn das Array keine Elemente enthält, wird eine leere Liste zurückgegeben.

Wenn ein JSON-Objekt gelesen readObject(ReadValueCallback<JsonReader,T> objectReaderFunc) werden soll oder eine JSON-Zuordnung gelesen werden soll, verwenden Sie readMap(ReadValueCallback<JsonReader,T> valueReaderFunc).

Parameters:

elementReaderFunc - Funktion, die jedes Element des Arrays liest.

Returns:

Das JSON-Lesearray oder NULL, wenn null JsonToken oder NULList.

Throws:

IOException

- Wenn das Token nicht JsonToken#START_ARRAY, oder JsonToken#NULLNULL ist.

readMap

public final Map readMap(ReadValueCallback valueReaderFunc)

Liest eine JSON-Zuordnung.

Wenn null currentToken() ist, wird dies ausgeführt nextToken(). Wenn das Starttoken weiterhin NULL oder NULL NULL ist, wird zurückgegeben. Wenn das Token etwas anderes START_OBJECT als ein IllegalStateException ist, wird ausgelöst.

Sobald der JSON-Stream für das Lesen von Schlüsseln und Werten vorbereitet ist, wird das nächste Token abgerufen und der Feldname als Schlüssel gelesen, dann das nächste Token danach abgerufen und an das valueReaderFunc übergebenJsonReader, um das Lesen des Werts des Schlüssel-Wert-Paares zu behandeln. Wenn das Objekt über keine Elemente verfügt, wird eine leere Zuordnung zurückgegeben.

Wenn ein JSON-Objekt gelesen readObject(ReadValueCallback<JsonReader,T> objectReaderFunc) werden soll oder wenn ein JSON-Array gelesen werden soll, verwenden Sie readArray(ReadValueCallback<JsonReader,T> elementReaderFunc).

Parameters:

valueReaderFunc - Funktion, die jeden Wert des Schlüssel-Wert-Paares liest.

Returns:

Die JSON-Read-Zuordnung oder NULL, wenn null JsonToken oder NULList.

Throws:

IOException

- Wenn das Token nicht JsonToken#START_OBJECT, oder JsonToken#NULLNULL ist.

readObject

public final T readObject(ReadValueCallback objectReaderFunc)

Liest ein JSON-Objekt.

Wenn null currentToken() ist, wird dies ausgeführt nextToken(). Wenn das Starttoken weiterhin NULL oder NULL NULL ist, wird zurückgegeben. Wenn das Token etwas anderes START_OBJECT als ein IllegalStateException ist, wird ausgelöst.

Sobald der JSON-Stream für das Lesen des Objekts vorbereitet ist, wird das nächste Token abgerufen und an das objectReaderFunc übergebenJsonReader, um das Lesen des Objekts zu verarbeiten.

Wenn ein JSON-Array gelesen werden soll oder readArray(ReadValueCallback<JsonReader,T> elementReaderFunc) wenn eine JSON-Zuordnung gelesen werden soll, verwenden Sie readMap(ReadValueCallback<JsonReader,T> valueReaderFunc).

Parameters:

objectReaderFunc - Funktion, die jeden Wert des Schlüssel-Wert-Paares liest.

Returns:

Das JSON-Objekt mit Lesezugriff oder NULL, wenn null JsonToken oder NULList.

Throws:

IOException

- Wenn das Token nicht JsonToken#START_OBJECT, oder JsonToken#NULLNULL ist.

bufferObject

public abstract JsonReader bufferObject()

Liest das aktuelle JSON-Objekt, auf das der zeigt, und gibt es JsonReader zurück. Dadurch wird der aktuelle Speicherort dieses JsonReadergeändert.

Wenn der currentToken() nicht START_OBJECT ist oder FIELD_NAME ein IllegalStateException ausgelöst wird.

Wenn der currentToken() ist FIELD_NAME , erstellt dies ein JSON-Objekt, bei dem das erste JSON-Feld das currentToken() Feld ist, was bedeutet, dass dies von der Mitte eines JSON-Objekts aufgerufen werden kann, um ein neues JSON-Objekt mit nur einer Teilmenge von Feldern zu erstellen (die aus denen übrig bleiben, wenn die Methode aufgerufen wird).

Der zurückgegebene JsonReader kann sein reset() , um den zugrunde liegenden JSON-Stream wiederzugeben.

Returns:

Das gepufferte JSON-Objekt, auf das der JsonReader zeige.

Throws:

IOException

- Wenn nicht #currentToken()JsonToken#START_OBJECT oder JsonToken#FIELD_NAME gefolgt von JsonToken#START_OBJECT

close

public abstract void close()

Schließt den JSON-Stream.

Throws:

IOException

- Wenn der zugrunde liegende Inhaltsspeicher nicht geschlossen werden kann.

currentToken

public abstract JsonToken currentToken()

Ruft die JsonToken ab, auf die der Leser derzeit verweist.

Gibt NULL zurück, wenn der Leser nicht auf ein Token zeigt. Dies geschieht, wenn der Leser nicht begonnen hat, den JSON-Wert zu lesen oder wenn das Lesen des JSON-Werts abgeschlossen ist.

Returns:

Die JsonToken , auf die der Leser derzeit zeigt, oder NULL, wenn der Leser nicht auf ein Token zeigt.

getBinary

public abstract byte[] getBinary()

Ruft den binärwert ab, wenn der Leser derzeit auf ein STRING Token zeigt.

Dadurch wird das Äquivalent von Base64#getDecoder()Base64.Decoder#decode(String)zurückgegeben.

Wenn der Leser auf null NULL zeigt, wird zurückgegeben. Wenn der Leser auf einen anderen Tokentyp zeigt, wird ein IllegalStateException ausgelöst.

Returns:

Der binärwert basierend darauf, ob das aktuelle Token oder NULListSTRING.

Throws:

IOException

- Wenn der Leser nicht auf oder JsonToken#STRINGJsonToken#NULLzeigt.

getBoolean

public abstract boolean getBoolean()

Ruft den booleschen Wert ab, wenn der Leser derzeit auf ein BOOLEAN Token zeigt.

Wenn der Leser auf einen anderen Tokentyp zeigt, wird ein IllegalStateException ausgelöst.

Wenn Boolean gelesen werden soll, verwenden Sie getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

Der boolesche Wert basierend auf BOOLEAN.

Throws:

IOException

- Wenn der Leser nicht auf JsonToken#BOOLEANzeigt.

getDouble

public abstract double getDouble()

Ruft den Double-Wert ab, wenn der Leser derzeit auf ein NUMBER oder STRINGzeigt.

STRING löst ein aus NumberFormatException , wenn der zugrunde liegende Zeichenfolgenwert nicht in ein Double konvertiert werden kann.

Alle anderen JsonToken Typen lösen ein aus IllegalStateException.

Wenn Double gelesen werden soll, verwenden Sie getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

Der Double-Wert basierend auf dem aktuellen Token.

Throws:

IOException

- Wenn das aktuelle Token ein JsonToken#STRING ist und nicht in ein Double konvertiert werden kann.

getFieldName

public abstract String getFieldName()

Ruft den Feldnamen ab, wenn der Leser derzeit auf einen FIELD_NAMEzeigt.

Alle anderen JsonToken Typen lösen ein aus IllegalStateException.

Returns:

Der Feldname basierend auf dem aktuellen Token.

Throws:

IOException

- Wenn das aktuelle Token kein JsonToken#FIELD_NAMEist.

getFloat

public abstract float getFloat()

Ruft den float-Wert ab, wenn der Leser derzeit auf ein NUMBER oder STRINGzeigt.

STRING löst ein aus NumberFormatException , wenn der zugrunde liegende Zeichenfolgenwert nicht in einen Float konvertiert werden kann.

Alle anderen JsonToken Typen lösen ein aus IllegalStateException.

Wenn Float gelesen werden soll, verwenden Sie getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

Der float-Wert basierend auf dem aktuellen Token.

Throws:

IOException

- Wenn das aktuelle Token ein JsonToken#STRING ist und nicht in einen Float konvertiert werden kann.

getInt

public abstract int getInt()

Ruft den wert int ab, wenn der Leser derzeit auf ein NUMBER oder STRINGzeigt.

STRING löst ein aus NumberFormatException , wenn der zugrunde liegende Zeichenfolgenwert nicht in einen int konvertiert werden kann.

Alle anderen JsonToken Typen lösen ein aus IllegalStateException.

Wenn Integer gelesen werden soll, verwenden Sie getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

Der wert int basierend auf dem aktuellen Token.

Throws:

IOException

- Wenn das aktuelle Token ein JsonToken#STRING ist und nicht in ein int konvertiert werden kann.

getLong

public abstract long getLong()

Ruft den long-Wert ab, wenn der Leser derzeit auf ein NUMBER oder STRINGzeigt.

STRING löst ein aus NumberFormatException , wenn der zugrunde liegende Zeichenfolgenwert nicht in einen long konvertiert werden kann.

Alle anderen JsonToken Typen lösen ein aus IllegalStateException.

Wenn Long gelesen werden soll, verwenden Sie getNullable(ReadValueCallback<JsonReader,T> nonNullGetter).

Returns:

Der long-Wert basierend auf dem aktuellen Token.

Throws:

IOException

- Wenn das aktuelle Token ein JsonToken#STRING ist und nicht in ein long konvertiert werden kann.

getRawText

public String getRawText()

Ruft den Unformatierten Textwert für den currentToken()ab.

Die einzelnen JsonToken Typen werden wie folgt behandelt:

Wenn das aktuelle Token NULL ist, wird ausgelöst IllegalStateException .

Returns:

Der Rohtextwert für den currentToken().

Throws:

IOException

- Wenn das aktuelle Token NULL ist.

getString

public abstract String getString()

Ruft den Wert String ab, wenn der Leser derzeit auf ein BOOLEAN, NULL, NUMBERoder STRINGzeigt.

Wenn das aktuelle Token ein BOOLEANist oder NUMBER die Zeichenfolgendarstellung des Werts zurückgegeben wird. Wenn das aktuelle Token NULL ist NULL , wird zurückgegeben.

Alle anderen JsonToken Typen lösen ein aus IllegalStateException.

Returns:

Der String-Wert basierend auf dem aktuellen Token.

Throws:

IOException

- Wenn das aktuelle Token kein JsonToken#BOOLEAN, , JsonToken#NULLoder JsonToken#NUMBERJsonToken#STRINGist.

getText

public final String getText()

Ruft den Textwert für ab currentToken().

Die einzelnen JsonToken Typen werden wie folgt behandelt:

Wenn das aktuelle Token NULL ist, wird ausgelöst IllegalStateException .

Returns:

Der Textwert für .currentToken()

Throws:

IOException

- Wenn das aktuelle Token NULL ist.

isEndArrayOrObject

public final boolean isEndArrayOrObject()

Gibt an, ob oder currentToken() ist END_ARRAYEND_OBJECT.

Returns:

Gibt an, ob oder currentToken() ist END_ARRAYEND_OBJECT.

isResetSupported

public abstract boolean isResetSupported()

Gibt an, ob unterstützt wird JsonReaderreset().

Returns:

Gibt an, ob reset() unterstützt wird.

isStartArrayOrObject

public final boolean isStartArrayOrObject()

Gibt an, ob oder currentToken() ist START_ARRAYSTART_OBJECT.

Returns:

nextToken

public abstract JsonToken nextToken()

Durchläuft und gibt die nächste JsonToken im JSON-codierten Wert zurück.

Gibt NULL zurück, wenn das Durchlaufen auf das nächste Token das Lesen des JSON-codierten Werts abgeschlossen hat.

Returns:

Die nächste JsonToken im JSON-codierten Wert oder NULL, wenn das Lesen abgeschlossen ist.

Throws:

IOException

- Wenn das nächste Token nicht ermittelt werden kann.

readChildren

public final String readChildren()

Liest rekursiv den JSON-Token-Substream, wenn das aktuelle Token entweder START_ARRAY oder START_OBJECTist.

Wenn nicht currentToken()START_OBJECT oder START_ARRAY nichts gelesen wird.

Returns:

Der rohe Textwert des JSON-Tokenunterstroms.

Throws:

IOException

- Wenn die untergeordneten Elemente nicht gelesen werden können.

readChildren

public final void readChildren(StringBuilder buffer)

Liest rekursiv den JSON-Tokenunterstrom, wenn das aktuelle Token entweder START_ARRAY oder START_OBJECT im übergebenen StringBuilderist.

Wenn nicht currentToken()START_OBJECT oder START_ARRAY nichts gelesen wird.

Parameters:

buffer - Der StringBuilder , in dem der Leseunterstream geschrieben wird.

Throws:

IOException

- Wenn buffer null ist.

readRemainingFieldsAsJsonObject

public final String readRemainingFieldsAsJsonObject()

Liest die verbleibenden Felder im aktuellen JSON-Objekt als JSON-Objekt.

Wenn die currentToken() ist START_OBJECT , funktioniert dies mit readChildren(). Wenn der currentToken() ist FIELD_NAME , wird ein JSON-Objekt erstellt, bei dem das erste Feld das aktuelle Feld ist und die restlichen Felder im JSON-Objekt liest.

Wenn nicht currentToken()START_OBJECT oder FIELD_NAME nichts gelesen wird.

Returns:

Der unformatierte Textwert der verbleibenden JSON-Felder.

Throws:

IOException

- Wenn die restlichen JSON-Felder nicht gelesen werden können.

readRemainingFieldsAsJsonObject

public final void readRemainingFieldsAsJsonObject(StringBuilder buffer)

Liest die verbleibenden Felder im aktuellen JSON-Objekt als JSON-Objekt.

Wenn die currentToken() ist START_OBJECT , funktioniert dies mit readChildren(StringBuilder buffer). Wenn der currentToken() ist FIELD_NAME , wird ein JSON-Objekt erstellt, bei dem das erste Feld das aktuelle Feld ist und die restlichen Felder im JSON-Objekt liest.

Wenn nicht currentToken()START_OBJECT oder FIELD_NAME nichts gelesen wird.

Parameters:

buffer - Die StringBuilder , in der die verbleibenden JSON-Felder geschrieben werden.

Throws:

IOException

- Wenn buffer null ist.

readUntyped

public final Object readUntyped()

Liest ein nicht typisiertes Objekt.

Wenn null currentToken() ist, wird dies ausgeführt nextToken().

Wenn das Starttoken END_ARRAY, oder FIELD_NAME ist, END_OBJECTwird ausgelöstIllegalStateException, da dies ungültige Startpunkte für das Lesen eines unbekannten Typs sind. Wenn das nicht typisierte Objekt tief geschachtelt ist, wird auch ein IllegalStateException ausgelöst, um eine Stapelüberlaufausnahme zu verhindern.

Das zurückgegebene Objekt ist eines der folgenden:

  • null, wenn das Starttoken NULL oder NULL
  • true oder false, wenn das Starttoken lautet BOOLEAN
  • Einer von int, long, float oder double ist das Starttoken NUMBER. Der kleinste enthaltende Wert wird verwendet, wenn die Zahl eine ganze Zahl ist.
  • Ein Array nicht typisierter Elemente, wenn der Ausgangspunkt ist START_ARRAY
  • Eine Zuordnung des nicht typisierten String-Werts, wenn der Startpunkt ist START_OBJECT

Returns:

Der nicht typisierte Wert basierend auf den oben beschriebenen Rückgabetypen.

Throws:

IOException

- Wenn der Startpunkt des Objekts , JsonToken#END_OBJECToder ist JsonToken#END_ARRAYJsonToken#FIELD_NAME oder, wenn das nicht typisierte Objekt tief geschachtelt ist.

reset

public abstract JsonReader reset()

Erstellt eine neue JsonReader Zurücksetzung am Anfang des JSON-Datenstroms.

Verwenden Sie isResetSupported() , um zu bestimmen, ob die JsonReader zurückgesetzt werden kann. Wenn das Zurücksetzen aufgerufen wird und es nicht unterstützt wird, wird ein IllegalStateException ausgelöst.

Returns:

Ein neues JsonReader Zurücksetzen auf den Anfang des JSON-Datenstroms.

Throws:

IOException

- Wenn das Zurücksetzen vom aktuellen JsonReader nicht unterstützt wird.

skipChildren

public abstract void skipChildren()

Überspringt rekursiv den JSON-Tokenunterstream, wenn das aktuelle Token entweder START_ARRAY oder START_OBJECTist.

Wenn das aktuelle Token nicht der Anfang eines Arrays oder Objekts ist, ist diese Methode ein No-Op.

Throws:

IOException

- Wenn die untergeordneten Elemente nicht übersprungen werden können.

Gilt für: