存储过程接收JSON格式数据
前端有可能一次性上传多笔记录,并使用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格式数据的更多相关文章
- js使用s:property标签接收json格式数据
js使用s:property接收json数据时,会出现字符被转译的错误. 错误如下: 引号会被转译成'"'字符,导致解析不了. 错误原因: html的s:property接收不会出错,而js ...
- php接收json格式数据(text/xml)
在API服务中,目前流行采用json形式来交互. 给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据. ...
- spring接收json格式的多个对象参数(变通法)
两种方法 方法1 如果使用spring mvc同客户端通信,完全使用json数据格式,需要如下定义一个RequestMapping @Controller public class TestContr ...
- ajax接收遍历处理json格式数据
ajax在前后端的交互中应用非常广泛,通过请求后台接口接收处理json格式数据展现在前端页面. 下面我们来简单用 ajax在本地做一个接收并处理json的小例子 首先我们要新建一个叫做data的jso ...
- SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法
create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...
- ajax接收处理json格式数据
ajax在前后端的交互中应用非常广泛,通过请求后台接口接收处理json格式数据展现在前端页面. 下面我们来简单用 ajax在本地做一个接收并处理json的小例子 首先我们要新建一个叫做data的jso ...
- 使用C#中JavaScriptSerializer类将对象转换为Json格式数据
将对象转换为json格式字符串: private JavaScriptSerializer serializer = new JavaScriptSerializer(); protected voi ...
- Ajax返回html和json格式数据
Ajax可以返回text和xml格式 可以用Ajax返回大段的html文本和json格式的字符串,然后用eval()方法 转化为json对象 php中的json编码:json_encode(); ph ...
- 返回json格式数据乱码
本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody @RequestMapping(value = "getListByTime", ...
随机推荐
- Nested Classes
http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html package priceton; /* * Copyright (c) ...
- UVA - 10305 【全排列】
题意 要求给出一组 包含 1 - N 的数字的序列 要求这个序列 满足 题给的限制条件 比如 1 2 就是 1 一定要在 2 前面 思路 因为 数据规模较小 可以用 全排列 然后判断每个序列 是否满足 ...
- iOS 多语言支持
如果app将来面向国际化,比如说中国需要使用,美国也需要使用,此时就需要考虑app支持多国语言 具体方式如下 首先在Supporting Files中新建 Strings 起名: Localizabl ...
- debian支持的系统架构介绍
debian系统支持类型有armel.armhf.i386.amd64.mips.mipsel, powerpc.sparc.s390.s390x等. 详细对比文章见https://www.debia ...
- PYTHON 爬虫笔记十一:Scrapy框架的基本使用
Scrapy框架详解及其基本使用 scrapy框架原理 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了 ...
- matlab的代码注释
1.注释一块代码: %{ 此处代码块 %} 2.注释数行代码: 先选中,然后用组合键Ctrl+R 取消注释,用组合键Ctrl+T 3.双%%的作用:代码分块运行,点击双%%之间的代码,再点Run Se ...
- python把源代码打包成.exe文件
1.在windows命令行把当前文件夹用cd命令切换到源代码所在文件夹. 2.输入命令:pyinstaller -w -F main.py
- 维特比算法(Viterbi)
维特比算法(Viterbi) 维特比算法 编辑 维特比算法是一种动态规划算法用于寻找最有可能产生观测事件序列的-维特比路径-隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中.术语“维特比路 ...
- 最近火狐浏览器 总是“插件 adobe flash 已崩溃”
原因和解决方案:在地址栏中输入:about:addons>在如下地方发现firefox已经在警告该插件的安全性了>选择“总不激活”
- codeforces 659F F. Polycarp and Hay(并查集+bfs)
题目链接: F. Polycarp and Hay time limit per test 4 seconds memory limit per test 512 megabytes input st ...