Heim > Backend-Entwicklung > C++ > Wie deserialisiere ich einen Stream verketteter JSON-Objekte in JSON.NET?

Wie deserialisiere ich einen Stream verketteter JSON-Objekte in JSON.NET?

Susan Sarandon
Freigeben: 2025-01-09 21:28:47
Original
434 Leute haben es durchsucht

How to Deserialize a Stream of Concatenated JSON Objects in JSON.NET?

JSON-Objektstream mit JSON.NET analysieren

Beim Deserialisieren eines verketteten Stroms von JSON-Objekten ohne Trennzeichen besteht das Problem darin, wie man mit JSON.NET richtig damit umgeht.

Die versuchte Lösung umfasst die Verwendung eines Stream-Readers, eines JSON-Textreaders und einer benutzerdefinierten Schleife, um den Stream in ein IEnumerable zu deserialisieren. Bei dieser Methode ist jedoch eine Ausnahme aufgetreten, die auf ein unerwartetes „EndObject“-Tag hinweist.

Um dies zu korrigieren, müssen einige Änderungen an der Schleife vorgenommen werden:

<code class="language-csharp">public IEnumerable<TResult> ReadJson<TResult>(Stream stream)
{
    var serializer = new JsonSerializer();

    using (var reader = new StreamReader(stream))
    using (var jsonReader = new JsonTextReader(reader))
    {
        jsonReader.SupportMultipleContent = true;

        while (jsonReader.Read())
        {
            yield return serializer.Deserialize<TResult>(jsonReader);
        }
    }
}</code>
Nach dem Login kopieren

Es ist wichtig zu beachten, dass das zurückgegebene IEnumerable iteriert werden muss, während der Stream geöffnet bleibt:

<code class="language-csharp">using (var stream = /* some stream */)
{
    IEnumerable<MyClass> result = ReadJson<MyClass>(stream);

    foreach (var item in result)
    {
        Console.WriteLine(item.MyProperty);
    }
}</code>
Nach dem Login kopieren

Diese Technologie befindet sich auf der Dotnetfiddle-Website (https://www.php.cn/link/a3b1c195e3033e5086eb7482c0942e4a.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich einen Stream verketteter JSON-Objekte in JSON.NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage