前端有可能一次性上传多笔记录,并使用JSON序列化。

现在在MS SQL Server 2016版本上,可以直接处理JSO数据。

如下面的前端序列化的数据:

DECLARE @json_string NVARCHAR(MAX) = N'
{
"catalog":[
{"ID":23394,"Item":"I32-GG443-QT0098-0001","Category":"S","Qty":423.65},
{"ID":45008,"Item":"I38-AA321-WS0098-0506","Category":"B","Qty":470.87},
{"ID":14350,"Item":"K38-12321-5456UD-3493","Category":"B","Qty":200.28},
{"ID":64582,"Item":"872-RTDE3-Q459PW-2323","Category":"T","Qty":452.44},
{"ID":23545,"Item":"098-SSSS1-WS0098-5526","Category":"S","Qty":500.00},
{"ID":80075,"Item":"B78-F1H2Y-5456UD-2530","Category":"T","Qty":115.06},
{"ID":53567,"Item":"PO0-7G7G7-JJY098-0077","Category":"Q","Qty":871.33},
{"ID":44349,"Item":"54F-ART43-6545NN-2514","Category":"S","Qty":934.39},
{"ID":36574,"Item":"X3C-SDEWE-3ER808-8764","Category":"Q","Qty":607.88},
{"ID":36574,"Item":"RVC-43ASE-H43QWW-9753","Category":"U","Qty":555.19},
{"ID":14350,"Item":"K38-12321-5456UD-3493","Category":"B","Qty":200.28},
{"ID":64582,"Item":"872-RTDE3-Q459PW-2323","Category":"T","Qty":452.44},
{"ID":80075,"Item":"B78-F1H2Y-5456UD-2530","Category":"T","Qty":115.06},
{"ID":53567,"Item":"PO0-7G7G7-JJY098-0077","Category":"Q","Qty":871.33},
{"ID":44349,"Item":"54F-ART43-6545NN-2514","Category":"S","Qty":934.39},
{"ID":44349,"Item":"54F-ART43-6545NN-2514","Category":"S","Qty":934.39},
{"ID":36574,"Item":"X3C-SDEWE-3ER808-8764","Category":"Q","Qty":607.88}]
}
'

Source Code

在数据库中,创建一张表来存储这些数据:

CREATE TABLE [dbo].[Parts Catalog]
(
[ID] INT,
[Item] NVARCHAR(40),
[Category] NVARCHAR(25),
[Qty] DECIMAL(18,2)
)
GO

Source Code

创建存储过程来接收并处理JSON数据:

CREATE  PROCEDURE [dbo].[usp_Parts_Catalog_Insert]
(
@json_string NVARCHAR(MAX)
)
AS
INSERT INTO [dbo].[Parts Catalog]([ID],[Item],[Category],[Qty])
SELECT [ID],[Item],[Category],[Qty] FROM OPENJSON(@json_string,'$.catalog')
WITH
(
[ID] INT '$.ID',
[Item] NVARCHAR(40) '$.Item',
[Category] NVARCHAR(25) '$.Category',
[Qty] DECIMAL(18,2) '$.Qty'
)
GO

Source Code

执行存储过程,并查询表数据:

以前上传多笔记录,均是使用表函数来处理,现在可以使用OPENJSON方法来进行。

存储过程接收JSON格式数据的更多相关文章

  1. js使用s:property标签接收json格式数据

    js使用s:property接收json数据时,会出现字符被转译的错误. 错误如下: 引号会被转译成'"'字符,导致解析不了. 错误原因: html的s:property接收不会出错,而js ...

  2. php接收json格式数据(text/xml)

    在API服务中,目前流行采用json形式来交互. 给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据. ...

  3. spring接收json格式的多个对象参数(变通法)

    两种方法 方法1 如果使用spring mvc同客户端通信,完全使用json数据格式,需要如下定义一个RequestMapping @Controller public class TestContr ...

  4. ajax接收遍历处理json格式数据

    ajax在前后端的交互中应用非常广泛,通过请求后台接口接收处理json格式数据展现在前端页面. 下面我们来简单用 ajax在本地做一个接收并处理json的小例子 首先我们要新建一个叫做data的jso ...

  5. SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法

    create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...

  6. ajax接收处理json格式数据

    ajax在前后端的交互中应用非常广泛,通过请求后台接口接收处理json格式数据展现在前端页面. 下面我们来简单用 ajax在本地做一个接收并处理json的小例子 首先我们要新建一个叫做data的jso ...

  7. 使用C#中JavaScriptSerializer类将对象转换为Json格式数据

    将对象转换为json格式字符串: private JavaScriptSerializer serializer = new JavaScriptSerializer(); protected voi ...

  8. Ajax返回html和json格式数据

    Ajax可以返回text和xml格式 可以用Ajax返回大段的html文本和json格式的字符串,然后用eval()方法 转化为json对象 php中的json编码:json_encode(); ph ...

  9. 返回json格式数据乱码

    本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody @RequestMapping(value = "getListByTime", ...

随机推荐

  1. 流畅的python学习笔记:第十一章:抽象基类

    __getitem__实现可迭代对象.要将一个对象变成一个可迭代的对象,通常都要实现__iter__.但是如果没有__iter__的话,实现了__getitem__也可以实现迭代.我们还是用第一章扑克 ...

  2. 获取系统 SID

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/hadstj/article/details/26399533 获取系统 SID ((gwmi win ...

  3. JavaScript原理学习

    悟透JavaScript(理解JS面向对象的好文章) http://www.cnblogs.com/leadzen/archive/2008/02/25/1073404.html Javascript ...

  4. 【linux】crontab的环境变量问题

    今天遇到一个奇怪的问题,同样一个脚本,手动执行没问题,加入到crontab中,就出现无法运行的情况,第一反应是环境变量问题 环境说明: 操作系统:centos 用户:test用户通过sudo su切换 ...

  5. linux内核中创建线程方法【转】

    本文转载自:https://www.cnblogs.com/Ph-one/p/6077787.html 1.头文件 #include <linux/sched.h> //wake_up_p ...

  6. 【Java】CookieStore 类使用示例

    CookieStore 是 Java API 中用来处理 HTTP 客户端的 Cookie 存储策略的类.psd素材 1. [代码]WebClient.java      01import java. ...

  7. BZOJ 1207 [HNOI2004]打鼹鼠:dp【类似最长上升子序列】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1207 题意: 有一个n*n的网格,接下来一段时间内会有m只鼹鼠出现. 第i只鼹鼠会在tim ...

  8. Eclipse中导入github上的项目

    Eclipse中导入github上的项目 转载至: http://blog.csdn.net/hil2000/article/details/8566456 1.首先在github.com上申请一个账 ...

  9. linux 进程学习笔记-进程调度

    在分时系统中,系统将CPU时间划分成无数个时间片(quantum)分配给不同的进程,一个时间片只执行一个进程,并且不停地切换,以让用户感觉到各个进程是在“同时运行”,这中间所需要的策略和算法便是进程调 ...

  10. DBSCAN 聚类分析

    DBSCANCLUSTER DBSCAN(Density-basedspatial clustering ofapplications with noise)Martin.Ester, Hans-Pe ...