0

嗨,我正在编写 SSIS 包以获取输出 Select a,b,c from CUST FOR JSON AUTO 但是我在单行中获取输出,例如

{"a":"摇滚","b":"纸","c":"剪刀"}, {"a":"摇滚","b":"纸","c":"剪刀" }, {"a":"Rock" ,"b":"paper" ,"c":"scissors"}....

但是我希望输出为

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

我的客户参数是 Json 文件将是大文件,他不想进行额外的格式化并且应该是可读的

4

1 回答 1

0

如果可以在 SSIS 中添加一个 javascript 组件,就可以做到。(我不确定如何在 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

这是有更多改进的小提琴

于 2020-07-17T21:16:09.757 回答