sql—如何将select…..from for json auto输出的字符串转换为json格式的文件,该文件无需使用第三方工具ssis即可读取

6g8kf2rb  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(226)

嗨,我正在写ssis包来获取 Select a,b,c from CUST FOR JSON AUTO 但是,我在一行中得到输出,比如
{“a”:“石头”,“b”:“布”,“c”:“剪刀”},{“a”:“石头”,“b”:“布”,“c”:“剪刀”},{“a”:“石头”,“b”:“布”,“c”:“剪刀”}。。。。
但是我希望输出为

{ 
 "a":"Rock",
  "b":"paper",
  "c":"scissors"
 },

{ 
 "a":"Rock",
  "b":"paper",
  "c":"scissors"
 },

{ 
 "a":"Rock",
  "b":"paper",
  "c":"scissors"
 },

我的客户机参数是json文件将是大文件,他不想做额外的格式,应该是可读的

mzillmmw

mzillmmw1#

如果可以将javascript组件添加到ssis中,就可以完成(我不知道如何在ssis中做到这一点)。但这里是如何用javascript实现的
我有办法把这件事搞得一团糟,但你看这是否符合你的目的

DECLARE @nl varchar(2) = char(13), @Json nvarchar(MAX) = (Select a,b,c from #CUST FOR JSON AUTO) 

Select @Json = Replace(@Json, '[{','[' + @nl + '{' + @nl) 
Select @Json = Replace(@Json, '{','{' + @nl) 
Select @Json = Replace(@Json, '","','",' + @nl + '"' ) 
Select @Json = Replace(@Json, '"},{','"' + @nl + '},' + @nl + @nl + '{' ) 
Select @Json = Replace(@Json, '"}]','"' + @nl + '}' + @nl + ']' + @nl + @nl) 

Select @Json as FormattedJSON

这里是小提琴与更多的改进

相关问题