首頁 > 後端開發 > C++ > 如何使用 JSON.NET 在 C# 中反序列化行分隔 JSON?

如何使用 JSON.NET 在 C# 中反序列化行分隔 JSON?

Susan Sarandon
發布: 2025-01-22 16:52:10
原創
589 人瀏覽過

How to Deserialize Line-Delimited JSON in C# using JSON.NET?

C#中換行分隔JSON資料的序列化與反序列化

在C#中,您可以利用JSON.NET函式庫來處理換行分隔的JSON資料。這種格式的JSON資料對於與Google BigQuery等服務互動至關重要。

序列化與反序列化過程

您可以使用JsonTextReader來解析換行分隔的JSON資料。具體步驟如下:

  1. 建立一個POCO類別(例如FooPerson)來表示JSON資料結構。
  2. 使用SupportMultipleContent標誌設定為true來初始化JsonTextReader物件。這對於處理單一流中的多個JSON物件至關重要。
  3. 使用JsonSerializer反序列化每個JSON物件。

如果需要將反序列化結果儲存為列表,請在循環中將每個反序列化的項目添加到列表中。

範例一:簡單JSON資料

對於以下JSON資料:

<code>{"some":"thing1"}
{"some":"thing2"}
{"some":"thing3"}</code>
登入後複製

以下程式碼示範了反序列化過程:

<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>
登入後複製

範例二:複雜JSON資料

對於更複雜的JSON資料:

<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>
登入後複製

建立一個Person POCO類,並使用與範例一相同的方法進行反序列化。

要注意的是,此技術也支援使用Json.Net 10.0.4及更高版本進行逗號分隔的JSON條目。

以上是如何使用 JSON.NET 在 C# 中反序列化行分隔 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板