我认为,如果您稍微改变一下循环,一切都会正常进行:
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); } }}请注意,
IEnumerable<TResult>在
Stream传递给此方法的打开期间,您必须进行迭代:
using (var stream = ){ IEnumerable<MyClass> result = ReadJson<MyClass>(stream); foreach (var item in result) { Console.WriteLine(item.MyProperty); }}示例: https :
//dotnetfiddle.net/Y2FLuK
JsonNet站点上的示例:使用JsonReader读取多个片段



