使用 Azure 逻辑应用将 CSV 转换为 JSON

Convert CSV to JSON using Azure Logic App

我正在使用 Azure 逻辑应用从我的存储帐户中获取 Blob 内容。 Blob 文件为 .CSV 格式。我想将 CSV 文件转换成 JSON.

我知道 Plumsail 文档等第三方连接器,但它们是付费的。有没有免费的解决方案?

如有任何帮助,我们将不胜感激。 谢谢!

可以使用split的方式拆分csv文件的内容,然后通过遍历存储到一个数组中,然后追加成一个Json的字符串。

比如csv文件的内容是

test1,test2,test3
testx,testy,testz

需要先拆分每一行,再用,拆分每一行。

注意\r\n在logic app中不好打,可以先用记事本写好,然后粘贴到ʻExpression`:

split(body('Get_blob_content_using_path'),'
')

你可以参考这个post。虽然很繁琐,但还是有借鉴意义的

=============更新==================

完整的工作流程如下:

注:

for each中需要开启Concurrency Control并将其值设置为1,否则会并行执行导致append操作乱序

您可以使用 PowerShell 运行时创建 Azure 函数,然后使用 PowerShell cmdlet ConvertFrom-CSVConvertTo-Json。可以从 Logic App 调用该函数。

using namespace System.Net

# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)

# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."

$Output = $Request.Body | ConvertFrom-CSV | ConvertTo-Json

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::OK
    Body = $Output
})

https://docs.microsoft.com/en-us/azure/azure-functions/functions-versions?tabs=in-process%2Cv4&pivots=programming-language-powershell

https://docs.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-powershell

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-json?view=powershell-7.2