单层json解析
--声明变量
declare @JsonData nvarchar(max)= '
{
"BillName":"12345765",
"SendDate":"2022-11-10T00:00:00",
"ShippingDate":"2022-11-10T00:00:00",
"PackagingDate":"2022-11-10T00:00:00",
"ProductName":"11111",
"Qty":5
}'
--json解析
SELECT *
FROM OPENJSON(@JsonData)
WITH(
BillName NVARCHAR(50) '$.BillName' , --单号
SendDate Datetime '$.SendDate', --送检时间
ShippingDate datetime '$.ShippingDate', --出货日期
PackagingDate datetime '$.PackagingDate', --打包日期
ProductName NVARCHAR(50) '$.ProductName', --料号
Qty NVARCHAR(50) '$.Qty' --数量、
)
解析的数据直接存到表中
INSERT INTO tableName(表名)
(
BillName , --单号
SendDate , --送检时间
ShippingDate , --出货日期
PackagingDate ,--打包日期
ProductName , --料号(带出NVT机种、测试设备)
Qty --数量、
)
SELECT *
FROM OPENJSON(@JsonData)
WITH(
BillName NVARCHAR(50) '$.BillName' , --单号
SendDate Datetime '$.SendDate', --送检时间
ShippingDate datetime '$.ShippingDate', --出货日期
PackagingDate datetime '$.PackagingDate', --打包日期
ProductName NVARCHAR(50) '$.ProductName', --料号
Qty NVARCHAR(50) '$.Qty' --数量、
)
多层json解析
declare @JsonData nvarchar(max)= '
{
"ServData":{
"Test":[{
"BillName":"12345765",
"SendDate":"2022-11-10T00:00:00",
"ShippingDate":"2022-11-10T00:00:00",
"PackagingDate":"2022-11-10T00:00:00",
"ProductName":"11111",
"Qty":5
}]
}
}'
SELECT *
FROM OPENJSON(JSON_QUERY(JSON_QUERY(@JsonData, '$.ServData'),'$.Test'))
WITH(
BillName NVARCHAR(50) '$.BillName' , --单号
SendDate Datetime '$.SendDate', --送检时间
ShippingDate datetime '$.ShippingDate', --出货日期
PackagingDate datetime '$.PackagingDate', --打包日期
ProductName NVARCHAR(50) '$.ProductName', --料号
Qty NVARCHAR(50) '$.Qty' --数量、
)