Siri dan penyahsirilan data JSON yang dibatasi baris baharu dalam C#
Dalam C#, anda boleh memanfaatkan perpustakaan JSON.NET untuk memproses data JSON yang dibatasi baris baharu. Format data JSON ini penting untuk berinteraksi dengan perkhidmatan seperti Google BigQuery.
Proses pensirilan dan penyahserikatan
Anda boleh menggunakan JsonTextReader
untuk menghuraikan data JSON yang dibatasi baris baharu. Langkah-langkah khusus adalah seperti berikut:
Foo
atau Person
) untuk mewakili struktur data JSON. SupportMultipleContent
menggunakan bendera true
yang ditetapkan kepada JsonTextReader
. Ini penting untuk mengendalikan berbilang objek JSON dalam satu aliran. JsonSerializer
. Jika anda perlu menyimpan hasil desiri sebagai senarai, tambahkan setiap item desiri pada senarai dalam satu gelung.
Contoh 1: Data JSON ringkas
Untuk data JSON berikut:
<code>{"some":"thing1"} {"some":"thing2"} {"some":"thing3"}</code>
Kod berikut menunjukkan proses penyahserikatan:
<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>
Contoh 2: Data JSON yang kompleks
Untuk data JSON yang lebih kompleks:
<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>
Buat kelas POCO Person
dan nyahserialisasi menggunakan kaedah yang sama seperti Contoh 1.
Perlu ambil perhatian bahawa teknologi ini juga menyokong entri JSON yang dipisahkan koma menggunakan Json.Net 10.0.4 dan lebih tinggi.
Atas ialah kandungan terperinci Bagaimana untuk Deserialize Line-Delimited JSON dalam C# menggunakan JSON.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!