读取和解析 SQL 数据库的 JSON 数据

Posted

技术标签:

【中文标题】读取和解析 SQL 数据库的 JSON 数据【英文标题】:Read and Parse JSON data for SQL database 【发布时间】:2016-07-18 14:04:57 【问题描述】:

我有一个包含大量数据的 JSON 文件,我想将这些 JSON 数据放入 SQL Server 数据库。我对此很陌生,我不知道从哪里开始。我想以某种方式解析 JSON 数据,然后将'title:"""' 发送到我的数据库列 'title' 中,以此类推。这是 JSON 数据的样子。

"success":true,"data":[
  
    "Title": "text here",
    "Description": "text here",
    "Order Type": "text here",
    "Date": "text here"
  ,
  
    "Title": "text",
    "Description": "text",
    "Order Type": "text",
    "Date": "text"
  ,

我仍在尝试找出解决此问题的最佳方法,但我在 Visual Studio 中使用网页。我有 JSON.NET,但不知道从哪里开始解码 json 文件。但是从那里我如何将对象中的每一行发送到相应的数据库列?任何建议都会有所帮助,因为我认为我需要回到学校大声笑

【问题讨论】:

你应该用你想要的属性构建一个类。然后,使用 JSON.NET 将您的 json 转换为该对象。从那里开始,数据库插入逻辑是一样的 你也可以使用内置的SQL Server函数msdn.microsoft.com/en-gb/library/dn921897.aspx 您可以将您的 JSON 反序列化为 DataTable,然后上传到 SQL 服务器。见newtonsoft.com/json/help/html/DeserializeDataSet.htm 和***.com/questions/9075159/… 【参考方案1】:

如果您有 SQL Server 2016,这可能适合您:

SET @json =
N'[
      "success":true,"data":[
        
          "Title": "text here",
          "Description": "text here",
          "Order Type": "text here",
          "Date": "text here"
        ,
        
          "Title": "text",
          "Description": "text",
          "Order Type": "text",
          "Date": "text"
        ]
    
]'

INSERT INTO YourTable
SELECT jsonData.*
FROM OPENJSON (@json, N'$.data')
          WITH (
             Title   varchar(200) N'$.data.Title', 
             Date     varchar(200)     N'$.data.Description',
             Customer varchar(200) N'$.data.Order Type', 
             Quantity varchar(200)          N'$.data.Date'
          )
 AS jsonData;

【讨论】:

以上是关于读取和解析 SQL 数据库的 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL解析Json字段

SQL解析Json字段

SQL解析Json字段

如何从 Azure SQL 数据库中的 Blob 解析 Json

从 JSON 文件读取和解析原始数据

java怎么读取json格式的数据