jum*_*791 12 c# asp.net json sql-server-2016
有人可以举例说明如何使用C#ASP.Net Core Web Api项目中的ADO.Net将JSON类型作为参数传递给SQL Server 2016存储过程吗?我想在C#ASP.Net Core Web Api中看到SQL Server 2016存储过程的示例和JSON类型的传递.
Mai*_*mad 19
有没有json data type在SQL割断你可以简单地把你json的 varchar存储过程.
如果要将json映射到表,可以使用use OPENJSON将数据转换为rows和columns.
CREATE PROCEDURE SaveJSON
@pID int,
@pJson nvarchar(max)
AS
BEGIN
INSERT INTO [YourTable]
([ID]
,[JSONData])
VALUES
(@pID
,@pJson)
END
Run Code Online (Sandbox Code Playgroud)
如果要将json对象与表映射,可以执行此操作
//json would be something like this
[
{ "id" : 2,"name": "John"},
{ "id" : 5,"name": "John"}
]
INSERT INTO YourTable (id,Name)
SELECT id, name
FROM OPENJSON(@pJson)
WITH (id int,
name nvarchar(max))
Run Code Online (Sandbox Code Playgroud)
这是一篇非常好的详细文章,它将为您提供详细的处理方法json data
SQL Server 2016 确实具有原生 JSON 支持 - 存在新的 JSON 数据类型(基于nvarchar),以及用于将查询输出转换为 JSON 格式的 FOR JSON 命令
Microsoft 没有包含单独的 JSON 数据类型 - 相反,有许多 JSON 函数(将数据库行打包为 JSON,或将 JSON 解析为关系数据)对类型的列进行操作 NVARCHAR(n)
如果你有JSON文本,你可以从JSON中提取数据或验证JSON是使用内置函数格式正确的JSON_VALUE,JSON_QUERY和ISJSON。对于更高级的查询和分析,该OPENJSON函数可以将一组 JSON 对象转换为一组行。可以对返回的结果集执行任何 SQL 查询。最后,有一个FOR JSON子句可以让您将查询结果格式化为 JSON 文本。
因此,我建议您将其NVARCHAR(MAX)用作存储过程参数。