【发布时间】:2018-04-14 06:42:41
【问题描述】:
我需要使用包含大量数据(但节点不多)的 JSON 流,例如:
{
"meta": {
"status": "ok"
},
"items": [
{
"name": "name of item 1",
"data": "In reality this could be a really long string of several hundred MB."
}
]
}
在读取此 JSON 流时,我想在数据传入时处理 data 字符串,而无需将整个字符串保存在内存中。
Json.NET 有一个JsonReader 类,它允许在节点进入时对其进行解码,但它将整个 节点保留在内存中。
有没有办法通过 Json.NET 实现我想要的,或者是否有另一个 JSON 库可以做到这一点(必须与 .Net Core 兼容)?
注意:对于 XML,这可以使用 System.Xml.XmlReader 类解决,该类作为 ReadValueChunkAsync 方法允许从传入流中读取大块数据。
【问题讨论】:
标签: c# json asynchronous stream json.net