Ich brauche mit einem JSON-Stream zu arbeiten, die große Blobs von Daten enthält (aber nicht so viele Knoten), zum Beispiel:Lesen große Blobs von json Strom
{
"meta": {
"status": "ok"
},
"items": [
{
"name": "name of item 1",
"data": "In reality this could be a really long string of several hundred MB."
}
]
}
Wenn dieses JSON-Stream liest ich bearbeiten wollen Die data
Zeichenfolge als die Daten kommen, ohne die gesamte Zeichenfolge im Speicher zu haben.
Json.NET verfügt über eine JsonReader
Klasse, die es ermöglicht, die Knoten so zu dekodieren, wie sie kommen, aber sie behält die gesamten Knoten im Speicher.
Gibt es eine Möglichkeit, mit Json.NET zu erreichen, was ich will, oder gibt es eine andere JSON-Bibliothek, die das kann (muss .Net-Core-kompatibel sein)?
Hinweis: Für XML kann dies mit der System.Xml.XmlReader
Klasse gelöst werden, die als eine ReadValueChunkAsync
Methode, die große Daten in Chunks aus dem eingehenden Stream lesen können.
ich über die gekommen sind drdobbs Artikel. Es wird erläutert, wie Knoten aus einem Stream gelesen werden, aber nicht, wie ein Wert in Blöcken gelesen wird. –
fixiert es auf der Senderseite eine Option? Zeichenfolgen in einem JSON-Objekt, die Speicherausnahmen verursachen, erscheinen wie eine riesige rote Flagge. Welche Lösung Sie auch auf der Empfängerseite finden, die Korrektur auf der Senderseite wäre der am wenigsten "hackige" Weg, dies zu tun. –
Ich stimme zu, dass JSON ein ziemlich schlechtes Format ist, um diese Art von Daten zu übertragen. Aber leider besitze ich nicht die Senderseite. –