Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menghuraikan Fail JSON Berbilang Susunan Besar dengan Cekap dalam .NET?
Menghuraikan fail JSON yang besar boleh menjadi cabaran dalam .NET, terutamanya jika struktur JSON bukan standard . Satu isu biasa yang dihadapi apabila menggunakan kaedah JsonConvert.Deserialize ialah ia boleh membuang pengecualian untuk fail besar.
Isu ini biasanya berlaku apabila fail JSON mengandungi tatasusunan diikuti oleh tatasusunan lain tanpa pembatas. Format ini tidak sah dalam JSON, menyebabkan JsonConvert.Deserialize gagal.
Untuk menyelesaikan isu ini, Json.NET menyediakan kelas JsonTextReader, yang membenarkan penghuraian kandungan JSON yang lebih fleksibel. Dengan menetapkan bendera SupportMultipleContent kepada benar dalam JsonTextReader, kami boleh menghuraikan berbilang tatasusunan daripada satu fail JSON sebagai objek berasingan.
Berikut ialah contoh kod dikemas kini yang menunjukkan teknik ini:
using (WebClient client = new WebClient()) using (Stream stream = client.OpenRead(stringUrl)) using (StreamReader streamReader = new StreamReader(stream)) using (JsonTextReader reader = new JsonTextReader(streamReader)) { reader.SupportMultipleContent = true; var serializer = new JsonSerializer(); while (reader.Read()) { if (reader.TokenType == JsonToken.StartObject) { Contact c = serializer.Deserialize<Contact>(reader); Console.WriteLine(c.FirstName + " " + c.LastName); } } }
Pendekatan ini membolehkan kami menghuraikan fail JSON bukan standard dengan cara yang cekap memori, tanpa mengira bilangan tatasusunan atau item dalam setiap tatasusunan. Sampel JSON yang disediakan dalam soalan boleh berjaya diproses menggunakan teknik ini.
Untuk demonstrasi penuh, rujuk pautan berikut: https://dotnetfiddle.net/2TQa8p
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Fail JSON Berbilang Susunan Besar dengan Cekap dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!