我需要从JSON StreamReader
反序列化,而不为该流中的每个对象实例化中间对象。
JsonConvert.DeserializeObject<T>(string json, JsonConverter[] converters)
StreamReader
和Newtonsoft.Json.*
类创建。 _我不确定是这种情况,因为我的JsonConverter
s _ Stream
。
new JsonSerializer().Deserialize(new JsonTextReader(streamReader))
理想情况下,我想要的是像
这样的APIobject JsonCooler.DeserializeObject<T>(
StreamReader jsonStream, Converter[] converters)
将直接反序列化为类T
的新实例,而不是将所有类似中间DOM的对象保留在内存中。
这样的解串器是否存在?或者我在概念层面缺少什么?
答案 0 :(得分:1)
我怀疑这是一个越来越频繁的用例。我正在考虑通过这个小小的那个来支持它,我也努力保持简短和快速:
https://github.com/ysharplanguage/FastJsonParser
我还在忙着让它稳定下来,但是如果你想在我有机会之前尝试在fork中实现它,那么希望能够略微修改Obj(int outer)和Arr (int outer)方法,以及向TypeInfo缓存添加(可选)“reviver”回调委托。那个允许应用程序决定是否/何时流中的下一个对象“{...}”或数组“[...]”需要完全反序列化。
“HTH,
答案 1 :(得分:0)
我在LitJSON中找到DataReader
,但它过时了。会接受任何更好的答案。