我有一个REST API,它返回以JSON格式格式化的响应:
{
"Employees" : [
{
"userId":"romin",
"jobTitleName":"Developer",
"emailAddress":"romin.k.irani@gmail.com"
},
{
"userId":"nirani",
"jobTitleName":"Developer",
"emailAddress":"neilrirani@gmail.com"
},
{
"userId":"tomhan",
"jobTitleName":"Program Directory",
"emailAddress":"tomhanks@gmail.com"
}
]
}
是否有任何内置函数可以根据上述JSON在SQL Server数据库中创建表“ Employees”?
+--------+-------------------+-------------------------+
| UserId | jobTitleName | emailAddress |
+--------+-------------------+-------------------------+
| romin | Developer | romin.k.irani@gmail.com |
| nirani | Developer | neilrirani@gmail.com |
| tomhan | Program Directory | tomhanks@gmail.com |
+--------+-------------------+-------------------------+
答案 0 :(得分:1)
首先根据您的JSON创建C#类
using System;
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
public partial class Welcome
{
[JsonProperty("Employees")]
public Employee[] Employees { get; set; }
}
public partial class Employee
{
[JsonProperty("userId")]
public string UserId { get; set; }
[JsonProperty("jobTitleName")]
public string JobTitleName { get; set; }
[JsonProperty("emailAddress")]
public string EmailAddress { get; set; }
}
var JSONObj= JsonConvert.DeserializeObject<Welcome>(json); //convert you json in to class object
var EmpArray=JSONObj["Employees"]; // will give you employee array
//现在您可以在那儿进行迭代以插入数据
答案 1 :(得分:1)
您可以使用OPENJSON表值函数将JSON数据解析为行和列。
DECLARE @json VARCHAR(max) ='
{
"Employees" : [
{
"userId":"romin",
"jobTitleName":"Developer",
"emailAddress":"romin.k.irani@gmail.com"
},
{
"userId":"nirani",
"jobTitleName":"Developer",
"emailAddress":"neilrirani@gmail.com"
},
{
"userId":"tomhan",
"jobTitleName":"Program Directory",
"emailAddress":"tomhanks@gmail.com"
}
]
}
'
SELECT userId,
jobTitleName,
emailAddress
FROM OPENJSON(@Json, '$.Employees')
WITH (
userId VARCHAR(100),
jobTitleName VARCHAR(100),
emailAddress VARCHAR(100)
);
答案 2 :(得分:0)
响应格式是否为JSON自描述格式?如果您对超媒体很感兴趣,那么您可能想编写自己的客户端缓存。