JSON.NET 提供了用于处理 JSON 数据的强大工具。 本指南重点介绍将串联的 JSON 对象流解析为 IEnumerable
集合。
核心策略涉及使用 JsonSerializer
并将 CheckAdditionalContent
设置为 false
,允许多个对象解析。该流被包装在 StreamReader
中,为 JSON 数据摄取提供 JsonTextReader
。
要处理连续流,将 SupportMultipleContent
设置为 true
至关重要。 一个常见的陷阱是反序列化后无法正确推进读者。 解决方案在于精心构造的循环:
<code class="language-csharp">while (jsonReader.Read()) { yield return serializer.Deserialize<TResult>(jsonReader); }</code>
此循环确保读取每个 JSON 对象并将其反序列化为 TResult
对象,从而有效地生成 IEnumerable
集合中的每个对象。
至关重要的是,请记住 IEnumerable
应该在流保持打开状态时进行迭代。 以下示例说明了这一点:
<code class="language-csharp">using (var stream = /* your stream */) { IEnumerable<MyClass> result = ReadJson<MyClass>(stream); foreach (var item in result) { Console.WriteLine(item.MyProperty); } }</code>
有关详细信息和更多示例,请参阅以下资源:
以上是如何使用 JSON.NET 将串联的 JSON 对象流解析为 IEnumerable 集合?的详细内容。更多信息请关注PHP中文网其他相关文章!