Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menghuraikan Aliran Objek JSON Bercantum dengan JSON.NET?

Bagaimana untuk Menghuraikan Aliran Objek JSON Bercantum dengan JSON.NET?

Linda Hamilton
Linda Hamiltonasal
2025-01-09 21:16:41168semak imbas

How to Parse a Stream of Concatenated JSON Objects with JSON.NET?

Gunakan JSON.NET untuk menghuraikan aliran objek JSON

Gunakan JSON.NET untuk menyahsiri aliran berterusan objek JSON tanpa pembatas ke dalam IEnumerable<T> seperti berikut:

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

    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>

Penggunaan:

Contoh berikut menunjukkan lelaran IEnumerable<T> semasa strim dibuka:

<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>

Nota lain:

  • Pastikan untuk mengulang IEnumerable<T> semasa strim dibuka.
  • Tetapkan CheckAdditionalContent kepada false untuk mengelakkan pengecualian apabila kandungan tambahan ditemui selepas penyahserikatan.

Contoh:

Sila rujuk contoh berikut di tapak web JSON.NET: "Baca berbilang serpihan menggunakan JsonReader" (https://www.php.cn/link/b0a3f2a0d6f86051e6ab6c49d6d99e75).

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Aliran Objek JSON Bercantum dengan JSON.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn