Utf8JsonReader Struktur

Definition

Stellt eine leistungsstarke API für schreibgeschützten Zugriff auf UTF-8-codierten JSON-Text in Vorwärtsrichtung bereit.

public value class Utf8JsonReader
public ref struct Utf8JsonReader
type Utf8JsonReader = struct
Public Structure Utf8JsonReader
Vererbung
Utf8JsonReader

Hinweise

Utf8JsonReader verarbeitet den Text sequenziell ohne Zwischenspeicherung und entspricht standardmäßig streng dem JSON-RFC.

Wenn Utf8JsonReader ungültige JSON auftreten, wird eine JsonException grundlegende Fehlerinformationen wie Zeilennummer und Byteposition in der Zeile ausgelöst.

Da dieser Typ eine Ref-Struktur ist, unterstützt sie nicht direkt async. Es bietet jedoch Unterstützung für die Wiedereinführung, unvollständige Daten zu lesen und erneut zu lesen, sobald weitere Daten angezeigt werden.

Um die maximale Tiefe beim Lesen oder Überspringen von Kommentaren festzulegen, erstellen Sie eine Instanz von JsonReaderOptions und übergeben sie an den Leser.

Weitere Informationen finden Sie unter Schreiben benutzerdefinierter Serializer und Deserializer mit System.Text.Json.

Konstruktoren

Utf8JsonReader(ReadOnlySequence<Byte>, Boolean, JsonReaderState)

Initialisiert eine neue Instanz der Utf8JsonReader-Struktur, mit der eine schreibgeschützte Sequenz mit UTF-8-codiertem Text verarbeitet und angegeben wird, ob die Eingabe den gesamten zu verarbeitenden Text enthält.

Utf8JsonReader(ReadOnlySequence<Byte>, JsonReaderOptions)

Initialisiert eine neue Instanz der Utf8JsonReader-Struktur, mit der eine schreibgeschützte Sequenz mit UTF-8-codiertem Text verarbeitet wird, indem die angegebenen Optionen verwendet werden.

Utf8JsonReader(ReadOnlySpan<Byte>, Boolean, JsonReaderState)

Initialisiert eine neue Instanz der Utf8JsonReader-Struktur, mit der ein schreibgeschützter Bereich mit UTF-8-codiertem Text verarbeitet und angegeben wird, ob die Eingabe den gesamten zu verarbeitenden Text enthält.

Utf8JsonReader(ReadOnlySpan<Byte>, JsonReaderOptions)

Initialisiert eine neue Instanz der Utf8JsonReader-Struktur, mit der ein schreibgeschützter Bereich mit UTF-8-codiertem Text verarbeitet wird, indem die angegebenen Optionen verwendet werden.

Eigenschaften

BytesConsumed

Ruft die gesamte Anzahl von Bytes ab, die von dieser Instanz von Utf8JsonReader bisher verbraucht wurden.

CurrentDepth

Ruft die Tiefe des aktuellen Tokens ab.

CurrentState

Ruft den aktuellen Utf8JsonReader-Zustand ab, um ihn an einen Utf8JsonReader-Konstruktor mit weiteren Daten zu übergeben.

HasValueSequence

Ruft einen Wert an, der angibt, welche Value-Eigenschaft zum Abrufen des Tokenwerts zu verwenden ist.

IsFinalBlock

Ruft den Modus dieser Instanz von Utf8JsonReader ab, der angibt, ob die gesamten JSON-Daten übergeben wurden oder weitere folgen.

Position

Ruft die aktuelle SequencePosition innerhalb des bereitgestellten UTF-8-codierten ReadOnlySequence<Byte> der Eingabe oder einen SequencePosition-Standardwert ab, wenn die Utf8JsonReader-Struktur mit einem ReadOnlySpan<Byte> erstellt wurde.

TokenStartIndex

Ruft den Index ab, an dem das zuletzt verarbeitete JSON-Token beginnt (innerhalb des angegebenen UTF-8-codierten Eingabetexts), wobei Leerraum übersprungen wird.

TokenType

Ruft den Typ des zuletzt verarbeiteten JSON-Tokens im UTF-8-codierten JSON-Text ab.

ValueIsEscaped

Ruft einen Wert ab, der angibt, ob die aktuellen ValueSpan oder ValueSequence Eigenschaften Escapesequenzen pro RFC 8259 Abschnitt 7 enthalten und daher vor dem Verbrauch keine Kapselung erfordern.

ValueSequence

Ruft den Rohwert des zuletzt verarbeiteten Tokens als ReadOnlySequence<byte>-Slice der Eingangsnutzlast nur ab, wenn das Token in mehreren Segmenten enthalten ist.

ValueSpan

Ruft den Rohwert des zuletzt verarbeiteten Tokens als ReadOnlySpan<byte>-Slice der Eingangsnutzlast ab, wenn das Token in ein einzelnes Segment passt oder wenn der Leser mit einer JSON-Nutzlast konstruiert wurde, die in einem ReadOnlySpan<byte> enthalten ist.

Methoden

CopyString(Span<Byte>)

Kopiert den aktuellen JSON-Tokenwert aus der Quelle, nicht als UTF-8-Zeichenfolge in den Zielpuffer.

CopyString(Span<Char>)

Kopiert den aktuellen JSON-Tokenwert aus der Quelle, unescaped und transcoded als UTF-16-Zeichenpuffer.

GetBoolean()

Liest den nächsten JSON-Tokenwert aus der Quelle als einen Boolean-Wert.

GetByte()

Analysiert den aktuellen JSON-Tokenwert aus der Quelle als Byte.

GetBytesFromBase64()

Analysiert den Wert des aktuellen JSON-Tokens aus der Quelle und decodiert die Base64-codierte JSON-Zeichenfolge als Bytearray.

GetComment()

Analysiert den Wert des aktuellen JSON-Tokens aus der Quelle als Kommentar, in einen String transcodiert.

GetDateTime()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen DateTime-Wert.

GetDateTimeOffset()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen DateTimeOffset-Wert.

GetDecimal()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen Decimal-Wert.

GetDouble()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen Double-Wert.

GetGuid()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen Guid-Wert.

GetInt16()

Analysiert den aktuellen JSON-Tokenwert aus der Quelle als Int16.

GetInt32()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen Int32-Wert.

GetInt64()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen Int64-Wert.

GetSByte()

Analysiert den aktuellen JSON-Tokenwert aus der Quelle als SByte.

GetSingle()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen Single-Wert.

GetString()

Liest den nächsten JSON-Tokenwert aus der Quelle (ohne Escapezeichen und als Zeichenfolge transcodiert).

GetUInt16()

Analysiert den aktuellen JSON-Tokenwert aus der Quelle als UInt16.

GetUInt32()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen UInt32-Wert.

GetUInt64()

Liest den nächsten JSON-Tokenwert aus der Quelle und analysiert ihn in einen UInt64-Wert.

Read()

Liest das nächste JSON-Token aus der Eingabequelle.

Skip()

Überspringt die untergeordneten Elemente des aktuellen JSON-Tokens.

TryGetByte(Byte)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als Byte zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetBytesFromBase64(Byte[])

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle zu analysieren. Die Base64-codierte JSON-Zeichenfolge wird als Bytearray decodiert, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetDateTime(DateTime)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als DateTime zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetDateTimeOffset(DateTimeOffset)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als DateTimeOffset zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetDecimal(Decimal)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als Decimal zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetDouble(Double)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als Double zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetGuid(Guid)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als Guid zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetInt16(Int16)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als Int16 zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetInt32(Int32)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als Int32 zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetInt64(Int64)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als Int64 zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetSByte(SByte)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als SByte zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetSingle(Single)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als Single zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetUInt16(UInt16)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als UInt16 zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetUInt32(UInt32)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als UInt32 zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TryGetUInt64(UInt64)

Es wird versucht, den aktuellen JSON-Tokenwert aus der Quelle als UInt64 zu analysieren, und es wird ein Wert zurückgegeben, mit dem der Erfolg bzw. Misserfolg des Vorgangs angegeben wird.

TrySkip()

Versucht, die untergeordneten Elemente des aktuellen JSON-Tokens zu überspringen.

ValueTextEquals(ReadOnlySpan<Byte>)

Vergleicht den UTF-8-codierten Text in einem schreibgeschützten Bytebereich mit dem JSON-Tokenwert ohne Escapezeichen in der Quelle und gibt einen Wert zurück, der angibt, ob eine Übereinstimmung besteht.

ValueTextEquals(ReadOnlySpan<Char>)

Vergleicht den Text in einem Zeichenbereich mit dem JSON-Tokenwert ohne Escapezeichen in der Quelle und gibt einen Wert zurück, der angibt, ob eine Übereinstimmung besteht.

ValueTextEquals(String)

Vergleicht den angegebenen Zeichenfolgentext mit dem JSON-Tokenwert ohne Escapezeichen in der Quelle und gibt einen Wert zurück, der angibt, ob eine Übereinstimmung besteht.

Gilt für