使用JSON.NET解析JSON物件流
在沒有分隔符號的情況下反序列化連接的JSON物件流時,問題在於如何使用JSON.NET正確處理。
嘗試的解決方案涉及使用流讀取器、JSON文字讀取器和自訂循環將流反序列化為IEnumerable
為了修正這個問題,需要對循環做一些修改:
<code class="language-csharp">public IEnumerable<TResult> ReadJson<TResult>(Stream stream) { var serializer = new JsonSerializer(); using (var reader = new StreamReader(stream)) using (var jsonReader = new JsonTextReader(reader)) { jsonReader.SupportMultipleContent = true; while (jsonReader.Read()) { yield return serializer.Deserialize<TResult>(jsonReader); } } }</code>
務必注意,必須在流保持開啟狀態時迭代返回的IEnumerable
<code class="language-csharp">using (var stream = /* some stream */) { IEnumerable<MyClass> result = ReadJson<MyClass>(stream); foreach (var item in result) { Console.WriteLine(item.MyProperty); } }</code>
此技術在dotnetfiddle網站(https://www.php.cn/link/a3b1c195e3033e5086eb7482c0942e4a。
以上是如何在 JSON.NET 中反序列化串聯 JSON 物件流?的詳細內容。更多資訊請關注PHP中文網其他相關文章!