通过SSIS创建json格式文件

通过SSIS创建json格式文件,ssis,Ssis,现在,我的SSIS包以文本格式创建一个平面文件。但现在客户机要求提供json格式的文件。我不知道如何以json格式放置文件。如果有人有这方面的知识,请分享 感谢您,JSON(JavaScript对象表示法)是一种轻量级数据交换格式。它是XML的替代品。目前SSIS不提供任何类型的Json支持 我假设您希望从数据库创建JSON文件。SQL Server确实提供了良好的性能。您可以使用FOR XML AUTO子句将查询结果转换为XML格式。还有第三方类库Json.NET,这是一个流行的高性能类库 所

现在,我的SSIS包以文本格式创建一个平面文件。但现在客户机要求提供json格式的文件。我不知道如何以json格式放置文件。如果有人有这方面的知识,请分享

感谢您,JSON(JavaScript对象表示法)是一种轻量级数据交换格式。它是XML的替代品。目前SSIS不提供任何类型的Json支持

我假设您希望从数据库创建JSON文件。SQL Server确实提供了良好的性能。您可以使用
FOR XML AUTO
子句将查询结果转换为XML格式。还有第三方类库Json.NET,这是一个流行的高性能类库

所以,以XML格式获取查询结果,将其存储在变量中,编写一个客户脚本,在该脚本中,您可以将输入XML解析为JSON,并使用原始文件目的地保存结果

也可以查看下面的资源


我有两种方法

V1 1) 数据泵将XML查询归档。 2) 使用newtonsoft将XML文件转换为JSON文件

V2 1) 使用PowerShell,从SSIS调用PowerShell。 e、 g

$Result=@()
$commandSourceData=新对象system.Data.SqlClient.SqlCommand($SQL,$sourceConnection)
$reader=$commandSourceData.ExecuteReader()
$Counter=$Reader.FieldCount
而($Reader.Read())
{
$tuple=@{}
对于($i=0;$i-lt$计数器;$i++)
{
$tuple.“$($Reader.GetName($i))”=“$(如果($Reader.GetFieldType($i).Name-eq'DateTime'))
{$Reader.GetDateTime($i)}
else{$Reader.GetValue($i)})”;
}
$Result+=$tuple
}
$Reader.Close()

$Result | convertTo JSON | Out File$OutputFile-Force

谢谢,很抱歉响应太晚。我会试试这些方法。警告你。
FOR XML AUTO
子句不会修复列中在XML中非法的无效字符,因此如果有任何无效XML字符,则需要在SQL查询中处理。我处理这个问题的方法是在我知道包含无效字符的列上使用
REPLACE()
,尽管我确信还有其他方法可以做到这一点。下面是一个有效的JSON文件:
{data=“your emtire CSV Here”}
客户需要让您知道他们到底想要什么。