Rumah > pembangunan bahagian belakang > C++ > Bagaimana Menghuraikan Strim Objek JSON Menggunakan JSON.NET?

Bagaimana Menghuraikan Strim Objek JSON Menggunakan JSON.NET?

Linda Hamilton
Lepaskan: 2025-01-09 21:31:47
asal
422 orang telah melayarinya

How to Parse a Stream of JSON Objects Using JSON.NET?

Menghuraikan strim objek JSON menggunakan JSON.NET

JSON.NET menyediakan penyelesaian yang mudah untuk menyahsiri aliran objek JSON yang disambungkan. Dalam mencapai matlamat ini, anda mungkin menghadapi isu bagaimana untuk memajukan pembaca selepas setiap penyahserialisasian.

Coretan kod yang anda berikan cuba untuk menyahsiri aliran objek JSON, tetapi gagal kerana ralat token yang tidak dijangka. Untuk menyelesaikan isu ini, ubah suai kod seperti berikut:

<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() && !jsonReader.EOF) // 添加EOF检查
        {
            try
            {
                yield return serializer.Deserialize<TResult>(jsonReader);
            }
            catch (JsonReaderException ex)
            {
                // 处理JSON读取异常,例如跳过无效的JSON对象
                Console.WriteLine($"JSON解析错误: {ex.Message}");
                // 可选:在此处添加日志记录或其他错误处理机制
            }
        }
    }
}</code>
Salin selepas log masuk

Dalam kod yang diubah suai ini, gelung telah dilaraskan untuk membaca setiap objek JSON daripada strim dan kemudian menghasilkan hasil desiri. Adalah penting untuk mengulangi IEnumerable<TResult> yang dikembalikan semasa strim yang disediakan terbuka untuk mengelakkan ralat pelupusan objek. Selain itu, semakan !jsonReader.EOF telah ditambahkan untuk mengelakkan gelung tak terhingga dan blok try-catch telah ditambahkan untuk mengendalikan potensi JsonReaderException seperti menghadapi objek JSON yang tidak sah.

Berikut ialah contoh:

<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>
Salin selepas log masuk

Untuk mendapatkan maklumat lanjut tentang menggunakan JsonReader untuk mengendalikan berbilang serpihan JSON, sila rujuk dokumentasi rasmi JSON.NET.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan