在.NET中解析大型JSON文件

在.NET中解析大型JSON文件,第1张

在.NET中解析大型JSON文件

正如您在更新中正确诊断出的那样,问题在于JSON先关闭,

]
然后再打开
[
以开始下一个集合。这种格式使JSON整体上无效,这就是Json.NET引发错误的原因。

幸运的是,这个问题似乎经常出现,以至于Json.NET实际上具有处理它的特殊设置。如果

JsonTextReader
直接使用a
来读取JSON,则可以将
SupportMultipleContent
标志设置为
true
,然后使用循环分别反序列化每个项目

这应该使您能够以内存有效的方式成功处理非标准JSON,而不管存在多少个数组或每个数组中有多少个项目。

    using (WebClient client = new WebClient())    using (Stream stream = client.OpenRead(stringUrl))    using (StreamReader streamReader = new StreamReader(stream))    using (JsonTextReader reader = new JsonTextReader(streamReader))    {        reader.SupportMultipleContent = true;        var serializer = new JsonSerializer();        while (reader.Read())        { if (reader.TokenType == JsonToken.StartObject) {     Contact c = serializer.Deserialize<Contact>(reader);     Console.WriteLine(c.FirstName + " " + c.LastName); }        }    }

完整的演示在这里:https :
//dotnetfiddle.net/2TQa8p



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4935647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存