栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在.NET中解析大型JSON文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在.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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号