CODE - TSQL convert Query to JSON

原文 ODE - TSQL convert Query to JSON 

TSQL - Query to JSON

It is my philosophy that good development starts with the data. I have always stressed whenever possible allow your data processing to take place on your SQL server or database processing engine and rendering of the data to the application control engine. By the time your application server receives the data it should be in the truncated, filtered, limited by rows, converted to correct formats, free of whitespace ect. Your application should only receive what it will use on the screen and nothing more. This however requires a developer to actually develop code, Stored Procedures and Functions.

This follows the same logical philosophy and creates a simple Query to JSON procedure.

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE[dbo].[SerializeJSON](

@ParameterSQL AS VARCHAR(MAX)

)

AS

BEGIN

  

DECLARE @SQL NVARCHAR(MAX)

DECLARE @XMLString VARCHAR(MAX)

DECLARE @XML XML

DECLARE @Paramlist NVARCHAR(1000)

SET @Paramlist = N'@XML XML OUTPUT'

SET @SQL = 'WITH PrepareTable (XMLString)'

SET @SQL = @SQL + 'AS('

SET @SQL = @SQL + @ParameterSQL+ 'FOR XML RAW,TYPE,ELEMENTS'

SET @SQL = @SQL + ')'

SET @SQL = @SQL + 'SELECT @XML=[XMLString]FROM[PrepareTable]'

EXEC sp_executesql @SQL, @Paramlist, @XML=@XML OUTPUT

SET @XMLString=CAST(@XML AS VARCHAR(MAX))

  

DECLARE @JSON VARCHAR(MAX)

DECLARE @Row VARCHAR(MAX)

DECLARE @RowStart INT

DECLARE @RowEnd INT

DECLARE @FieldStart INT

DECLARE @FieldEnd INT

DECLARE @KEY VARCHAR(MAX)

DECLARE @Value VARCHAR(MAX)

  

DECLARE @StartRoot VARCHAR(100);SET @StartRoot='<row>'

DECLARE @EndRoot VARCHAR(100);SET @EndRoot='</row>'

DECLARE @StartField VARCHAR(100);SET @StartField='<'

DECLARE @EndField VARCHAR(100);SET @EndField='>'

  

SET @RowStart=CharIndex(@StartRoot,@XMLString,0)

SET @JSON=''

WHILE @RowStart>0

BEGIN

    SET @RowStart=@RowStart+Len(@StartRoot)

    SET @RowEnd=CharIndex(@EndRoot,@XMLString,@RowStart)

    SET @Row=SubString(@XMLString,@RowStart,@RowEnd-@RowStart)

    SET @JSON=@JSON+'{'

  

    -- for each row

    SET @FieldStart=CharIndex(@StartField,@Row,0)

    WHILE @FieldStart>0

    BEGIN

        -- parse node key

        SET @FieldStart=@FieldStart+Len(@StartField)

        SET @FieldEnd=CharIndex(@EndField,@Row,@FieldStart)

        SET @KEY=SubString(@Row,@FieldStart,@FieldEnd-@FieldStart)

        SET @JSON=@JSON+'"'+@KEY+'":'

        -- parse node value

        SET @FieldStart=@FieldEnd+1

        SET @FieldEnd=CharIndex('</',@Row,@FieldStart)

        SET @Value=SubString(@Row,@FieldStart,@FieldEnd-@FieldStart)

        SET @JSON=@JSON+'"'+@Value+'",'

  

        SET @FieldStart=@FieldStart+Len(@StartField)

        SET @FieldEnd=CharIndex(@EndField,@Row,@FieldStart)

        SET @FieldStart=CharIndex(@StartField,@Row,@FieldEnd)

    END   

    IF LEN(@JSON)>0SET @JSON=SubString(@JSON,0,LEN(@JSON))

    SET @JSON=@JSON+'},'

    --/ for each row

  

    SET @RowStart=CharIndex(@StartRoot,@XMLString,@RowEnd)

END

IF LEN(@JSON)>0SET @JSON=SubString(@JSON,0,LEN(@JSON))

SET @JSON='['+@JSON+']'

SELECT @JSON

  

END

GO

Call thestored procedure

?


1

EXEC[SerializeJSON]'SELECT*FROM[Employee_TBL]'

时间: 2024-08-24 21:18:02

CODE - TSQL convert Query to JSON的相关文章

如何在ASP.NET中用C#将XML转换成JSON

原文http://www.cnblogs.com/jaxu/p/3296148.html 本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用. 或许你可以直接利用JavaScript代码通过Ajax的方式来读取XML,然后直接对其中的内容进行解析,这样或许更直接一些.但本文中给出的代码旨 在说明如何通过原生的C#代码来完成这一转换.除此之外,你仍然可以借用一些第三方类库或者更高级一些的.NET库对象来实施转换.

在 AngularJS 中将 XML 转换为 JSON

在这篇文章中,我们将谈谈如何在Angular JS中将XML文件转换为JSON.大家都知道Angular JS是开发应用程序的JavaScript框架.所以基本上Angular  JS期望得 到的响应式JSON格式的.因此,在你开始对数据进行操作之前,建议返回JSON格式的数据.在这篇文章中,我们会使用Angular JS $http服务加载一个本地的XML文件,并将这个XML文件转换成JSON.如果你是Angular  JS新手,请阅读<Angular  JS>.希望你会喜欢这篇文章. 背景

PHP生成json和xml类型接口数据格式

  在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据. php生成接口通信数据 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

silverlight动态读取txt文件/解析json数据/调用wcf示例

终于开始正式学习silverlight,虽然有点晚,但总算开始了,今天看了一下sdk,主要是想看下silverlight中如何动态调用数据,对于数据库的访问,sdk中的官方示例多用的是Ado.Net数据服务,方便到是方便,就是感觉Ado.Net数据服务返回的xml太啰嗦了,一点也不精简,数据通讯量太大(N多无用的标签导致客户端与服务端之间传输数据增加了不少),于是想到能否直接用wcf返回json格式, 何况sdk中提到silverlight中System.Json已经完成了对json的解析 经实

Json.Net6.0入门学习试水篇

原文:Json.Net6.0入门学习试水篇 前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序.这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构.例如,可以表示数组和复杂的

MySQL · 5.7新特性 · Query Rewrite Plugin

前言 从MySQL5.7.6版本开始支持Rewrite Plugin,可以将符合条件的SQL进行重写.在真实世界中,这个特性还是非常有用的,例如错误的上线了某个SQL,但由于无法走到索引导致全库; 或者你可能使用某个第三方的已编译好的软件,但SQL可能执行错误,你又无法直接修改应用,这个特性将会非常有用.你可以去编写符合你要求的插件. QR插件支持两种重写方式,一种是在语法解析之前,直接修改SQL字符串,一种是在语法解析之后,通过操控语法解析树来进行重写. 我们将简单讨论下使用MySQL自带的r

Solr查询语言 JSON Request API

一.背景与动机 JSON Request API是由noggit作者(同时也Solr Committer Leader)在Solr.5.3带来新特性,意在改善Solr原来复杂且又丑陋查询语法. 注:JSON Request API与Solr API v2并不是一回来,JSON Request API是一种新型Solr Query DSL.API v2新版本查询API,是基于Restful API实现的.当然JSON Request API显然是基于JSON实现的咯. 不过Request API还

struts2.1.8 ,使用自带json插件struts2-json-plugin-2.1.8.1.客户端得不到json对象,弹出下载action提示框

问题描述 struts2.1.8 ,使用自带struts2-json-plugin-2.1.8.1.jar把action对象返回客户端的json对象.注释配置,客户端总是弹出下载页面,打开后是正常的json数据,各位可以帮忙看看?代码很简单,困老好几天了,非常感谢,代码如下: Java代码 import org.apache.struts2.convention.annotation.ParentPackage;import org.apache.struts2.convention.annot

java中实体类和JSON对象之间相互转化_java

在需要用到JSON对象封装数据的时候,往往会写很多代码,也有很多复制粘贴,为了用POJO的思想我们可以装JSON转化为实体对象进行操作 package myUtil; import java.io.IOException; import myProject.Student; import myProject.StudentList; import org.codehaus.jackson.map.ObjectMapper; import org.json.JSONArray; import or