C#中換行分隔JSON資料的序列化與反序列化
在C#中,您可以利用JSON.NET函式庫來處理換行分隔的JSON資料。這種格式的JSON資料對於與Google BigQuery等服務互動至關重要。
序列化與反序列化過程
您可以使用JsonTextReader
來解析換行分隔的JSON資料。具體步驟如下:
Foo
或Person
)來表示JSON資料結構。 SupportMultipleContent
標誌設定為true
來初始化JsonTextReader
物件。這對於處理單一流中的多個JSON物件至關重要。 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中文網其他相關文章!