Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mensiri dan Menyahseri JSON Dibatasi Talian (LDJSON) dalam C#?

Bagaimana untuk Mensiri dan Menyahseri JSON Dibatasi Talian (LDJSON) dalam C#?

Mary-Kate Olsen
Lepaskan: 2025-01-22 16:35:10
asal
860 orang telah melayarinya

How to Serialize and Deserialize Line Delimited JSON (LDJSON) in C#?

Pensirilan dan Penyahserikatan JSON Dibataskan Talian (LDJSON) dalam C#

Memahami proses ini adalah penting apabila anda perlu mensiri dan menyahsiri objek ke dalam format JSON (LDJSON) yang dibatasi baris (biasa digunakan dalam penyediaan data Google BigQuery). LDJSON mewakili data sebagai satu siri objek JSON yang dibatasi baris baharu.

Menghuraikan data LDJSON secara manual

JsonTextReader dalam Json.NET menyediakan cara untuk menghuraikan data LDJSON secara manual. JsonTextReader boleh mengendalikan objek JSON bersebelahan dengan menetapkan bendera SupportMultipleContent kepada benar.

Contoh JSON pertama (objek ringkas)

Pertimbangkan data LDJSON berikut:

<code>{"some":"thing1"}
{"some":"thing2"}
{"some":"thing3"}</code>
Salin selepas log masuk

Kaedah analisis adalah seperti berikut:

var json = "{\"some\":\"thing1\"}\r\n{\"some\":\"thing2\"}\r\n{\"some\":\"thing3\"}";
var jsonReader = new JsonTextReader(new StringReader(json))
{
    SupportMultipleContent = true // 允许多个JSON对象
};

var jsonSerializer = new JsonSerializer();
while (jsonReader.Read())
{
    var foo = jsonSerializer.Deserialize<foo>(jsonReader);
}
Salin selepas log masuk

Contoh JSON kedua (objek bersarang)

Untuk JSON yang lebih kompleks:

{"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}]}
Salin selepas log masuk

Menggunakan pendekatan yang sama, tambahkan setiap objek desiri pada senarai:

var json = "{...}"; // 定义JSON字符串
var jsonReader = new JsonTextReader(new StringReader(json)) { SupportMultipleContent = true };
var jsonSerializer = new JsonSerializer();
var listOfPeople = new List<person>();

while (jsonReader.Read())
{
    listOfPeople.Add(jsonSerializer.Deserialize<person>(jsonReader));
}
Salin selepas log masuk

Nota: Json.Net 10.0.4 dan ke atas turut menyokong entri JSON yang dipisahkan koma, memberikan fleksibiliti tambahan.

Atas ialah kandungan terperinci Bagaimana untuk Mensiri dan Menyahseri JSON Dibatasi Talian (LDJSON) dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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