Azure Logic Apps操作"获取Blob内容"不允许我们设置返回内容类型。
默认情况下,它将blob作为二进制(八位字节流)返回,这在大多数情况下是无用的。一般来说,拥有文本(例如json,xml,csv等)会很有用。
我知道该动作正处于测试阶段。这是短期路线图吗?
答案 0 :(得分:6)
我找到的解决方法是使用Logic App表达式base64ToString。
例如,使用以下代码创建“Compose”类型的操作(数据操作组):
"ComposeToString": {
"inputs": "@base64ToString(body('Get_blob_content').$content)",
"runAfter": {
"Get_blob_content": [
"Succeeded"
]
},
"type": "Compose"
}
输出将是blob的文本表示。
答案 1 :(得分:2)
所以我有一个blob坐在z存储中,里面有json。 提取blob后,我得到了一个八位位组,这很没用,因为我无法解析它。
BadRequest。 “ content”属性在以下位置必须为JSON类型: “ ParseJson”操作输入,但类型为“ application / octet-stream”。
因此,我设置了字符串的内容类型“ Initialize variable”,指向GetBlobContent-> File Content。 base64转换发生在后台,现在我可以通过变量访问json了。
不需要代码。
JSON输出...
流量,没有代码...
享受!坦帕市的Healy ...
答案 2 :(得分:1)
在摆弄Logic Apps之后,我终于明白了发生了什么。
HTTP请求的JSON输出是XML有效负载的JSON表示:
{
"$content-type": "application/xml",
"$content": "77u/PD94bWwgdm..."
}
所以我们可以解码它,但实际上它没用。这是Logic App的XML对象。我们可以将xml函数应用于它,例如xpath。
答案 3 :(得分:0)