【发布时间】:2013-02-06 02:06:57
【问题描述】:
我需要从 JSON StreamReader 反序列化,而不为该流中的每个对象实例化中间对象。
-
JSON.NET 像
JsonConvert.DeserializeObject<T>(string json, JsonConverter[] converters)一样调用- 不接受
StreamReader,并且 - 在内存中为 JSON 结构创建整组
Newtonsoft.Json.*类,如内存分析器所示。 _我不确定是不是这样,因为我的JsonConverters _
- 不接受
-
JavaScriptSerializer 似乎也根本不支持
Streams。- 甚至没有记录
new JsonSerializer().Deserialize(new JsonTextReader(streamReader))
- 甚至没有记录
我想要的零方法是 SAX 或 StAX 样式的 JSON 解析器。
理想情况下,我想要的是一个类似的 API
object JsonCooler.DeserializeObject<T>(
StreamReader jsonStream, Converter[] converters)
这将直接反序列化为 T 类的新实例,而不是将其所有中间类 DOM 对象保存在内存中。
这样的反序列化器存在吗?或者我在概念层面缺少什么?
【问题讨论】:
-
另外,请参阅我为相关问题提供的其他答案和示例:stackoverflow.com/a/23731522/1409653
标签: .net json parsing json.net xmlpullparser