Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich zeilengetrennten JSON in C# mithilfe von JSON.NET?

Wie deserialisiere ich zeilengetrennten JSON in C# mithilfe von JSON.NET?

Susan Sarandon
Susan SarandonOriginal
2025-01-22 16:52:10649Durchsuche

How to Deserialize Line-Delimited JSON in C# using JSON.NET?

Serialisierung und Deserialisierung von durch Zeilenumbrüche getrennten JSON-Daten in C#

In C# können Sie die JSON.NET-Bibliothek nutzen, um durch Zeilenumbrüche getrennte JSON-Daten zu verarbeiten. Dieses Format von JSON-Daten ist für die Interaktion mit Diensten wie Google BigQuery unerlässlich.

Serialisierungs- und Deserialisierungsprozess

Sie können JsonTextReader verwenden, um durch Zeilenumbrüche getrennte JSON-Daten zu analysieren. Die spezifischen Schritte sind wie folgt:

  1. Erstellen Sie eine POCO-Klasse (z. B. Foo oder Person), um die JSON-Datenstruktur darzustellen.
  2. Initialisieren Sie das SupportMultipleContent-Objekt mit dem true-Flag, das auf JsonTextReader gesetzt ist. Dies ist für die Verarbeitung mehrerer JSON-Objekte in einem einzigen Stream unerlässlich.
  3. Deserialisieren Sie jedes JSON-Objekt mit JsonSerializer.

Wenn Sie die deserialisierten Ergebnisse als Liste speichern müssen, fügen Sie jedes deserialisierte Element in einer Schleife zur Liste hinzu.

Beispiel 1: Einfache JSON-Daten

Für die folgenden JSON-Daten:

<code>{"some":"thing1"}
{"some":"thing2"}
{"some":"thing3"}</code>

Der folgende Code demonstriert den Deserialisierungsprozess:

<code class="language-csharp">var json = "{\"some\":\"thing1\"}\r\n{\"some\":\"thing2\"}\r\n{\"some\":\"thing3\"}";
var jsonReader = new JsonTextReader(new StringReader(json))
{
    SupportMultipleContent = true
};

var jsonSerializer = new JsonSerializer();
var fooList = new List<Foo>();

while (jsonReader.Read())
{
    fooList.Add(jsonSerializer.Deserialize<Foo>(jsonReader));
}</code>

Beispiel 2: Komplexe JSON-Daten

Für komplexere JSON-Daten:

<code>{"kind": "person", "fullName": "John Doe", "age": 22, "gender": "Male", "citiesLived": [{ "place": "Seattle", "numberOfYears": 5}, {"place": "Stockholm", "numberOfYears": 6}]}
{"kind": "person", "fullName": "Jane Austen", "age": 24, "gender": "Female", "citiesLived": [{"place": "Los Angeles", "numberOfYears": 2}, {"place": "Tokyo", "numberOfYears": 2}]}</code>

Erstellen Sie eine Person POCO-Klasse und deserialisieren Sie sie mit derselben Methode wie in Beispiel 1.

Es ist wichtig zu beachten, dass diese Technologie auch durch Kommas getrennte JSON-Einträge mit Json.Net 10.0.4 und höher unterstützt.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich zeilengetrennten JSON in C# mithilfe von JSON.NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn