如何使用 JSON.NET 在 C# 中反序列化行分隔 JSON?
Jan 22, 2025 pm 04:52 PMC#中換行分隔JSON資料的序列化與反序列化
在C#中,您可以利用JSON.NET函式庫來處理換行分隔的JSON資料。這種格式的JSON資料對於與Google BigQuery等服務互動至關重要。
序列化與反序列化過程
您可以使用JsonTextReader
來解析換行分隔的JSON資料。具體步驟如下:
- 建立一個POCO類別(例如
Foo
或Person
)來表示JSON資料結構。 - 使用
SupportMultipleContent
標誌設定為true
來初始化JsonTextReader
物件。這對於處理單一流中的多個JSON物件至關重要。 - 使用
JsonSerializer
反序列化每個JSON物件。
如果需要將反序列化結果儲存為列表,請在循環中將每個反序列化的項目添加到列表中。
範例一:簡單JSON資料
對於以下JSON資料:
<code>{"some":"thing1"} {"some":"thing2"} {"some":"thing3"}</code>
登入後複製
以下程式碼示範了反序列化過程:
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)); }
登入後複製
範例二:複雜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中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)