sql - 如何将作为 JSON AUTO 的 select .....from 输出的字符串转换为无需使用第三方工具 SSIS 即可读取的 JSON 格式文件
问题描述
嗨,我正在编写 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 文件将是大文件,他不想进行额外的格式化并且应该是可读的
解决方案
如果可以在 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
这是有更多改进的小提琴
推荐阅读
- python - 我们可以在微服务应用引擎标准环境之间使用服务帐户进行身份验证吗?
- powershell - 如何将powershell数组转换为表
- cassandra-3.0 - 无效查询异常
- reactjs - 如何在 reactjs 组件中动态加载 json?
- python - 如何使用 Python 一次播放两个声音?
- python - 使用 IF 语句的 Python 用户定义函数不起作用
- xamarin.forms - 如何将 stacklayout 内容转换为 xamarin 形式的流
- python - 没有for循环的意大利面条情节?
- optimization - Webpack 4 SplitChunkPlugin 的 maxSize 与 maxInitialRequests
- mongodb - MongoDB计算不同的项目