使用 C# 解析 JSON 文本文件
Posted
技术标签:
【中文标题】使用 C# 解析 JSON 文本文件【英文标题】:Parse JSON text file using C# 【发布时间】:2013-12-10 14:00:56 【问题描述】:我有一个 JSON 格式的 2 GB 文本文件,我希望在 Visual Studio 2013 中使用 C# 对其进行解析。如何解析这些数据并将其插入 Microsoft Azure SQL 数据库?
【问题讨论】:
***.com/questions/3275863/… Parse JSON in C#的可能重复 旁注:2GB 的 JSON(或任何其他需要匹配结束标签的格式,如 XML)听起来是个坏主意...除非您可以在结果到达您的代码之前对其进行分块以显着减小大小您可能需要编写自己的阅读器的每个块(阅读 JSON 需要少量代码 - 所以即使您找不到现有的也应该不是问题)。 【参考方案1】:你可以试试看DataContractJsonSerializer Class
备注
使用 DataContractJsonSerializer 类来序列化一个 键入 JSON 文档并将 JSON 文档反序列化为 类型的实例。例如,您可以创建一个名为 Person 的类型 具有包含基本数据的属性,例如名称和 地址。然后,您可以创建和操作 Person 的实例 类并将其所有属性值写入 JSON 文档 稍后检索。此 JSON 文档稍后可以反序列化为 Person 类或其他具有等效数据协定的类。
如果在输出回复的序列化过程中发生错误 服务器或回复操作会引发其他一些异常 原因,它可能不会作为故障返回给客户端。
同时检查How to: Serialize and Deserialize JSON Data
【讨论】:
【参考方案2】:Azure SQL 数据库支持 OPENJSON 函数,该函数可以解析 JSON 并将其转换为表,请参阅https://azure.microsoft.com/en-us/updates/public-preview-json-in-azure-sql-database/ 由于您有很大的 JSON,您可以在 .Net 端对其进行压缩,并在 Azure SQL Db 中使用 DECOMPRESS 函数对其进行解压缩以减少网络带宽。
【讨论】:
以上是关于使用 C# 解析 JSON 文本文件的主要内容,如果未能解决你的问题,请参考以下文章