使用JSON.NET解析JSON对象流的正确方法是什么?
我有一个JSON对象流,看起来有点像这样:
{...}{...}{...}{...}...
所以基本上是没有任何分隔符的JSON对象的连接列表。将这些反序列化为IEnumerable<T>
使用JSON.NET 的正确方法是什么?此刻我尝试了类似的东西
var serializer = new JsonSerializer();serializer.CheckAdditionalContent = false;using (var reader = new StreamReader(stream))using (var jsonReader = new JsonTextReader(reader)) { reader.SupportMultipleContent = true; reader.Read(); while (reader.TokenType != JsonToken.None) { yield return serializer.Deserialize<TResult>(reader); }}
但这失败了
Newtonsoft.Json.JsonSerializationException: Unexpected token while deserializing object: EndObject. Path '', line 1, position 55. at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader)
显然我需要在Deserialize
通话结束后移动阅读器,但我该怎么办呢?
相关分类