Azure Logic应用程序操作“获取Blob内容”不允许我们设置返回内容类型。默认情况下,它返回的blob是二进制的(八位字节流),这在大多数情况下是无用的。一般来说,有文本(例如json,xml,csv等)会很有用。我知道行动是在测试版。这是在短期路线图?
hmmo2u0o1#
我找到的解决方法是使用Logic App表达式base64ToString。例如,使用以下代码创建类型为“Compose”(数据操作组)的操作:
"ComposeToString": { "inputs": "@base64ToString(body('Get_blob_content').$content)", "runAfter": { "Get_blob_content": [ "Succeeded" ] }, "type": "Compose" }
输出将是blob的文本表示。
zd287kbt2#
所以我在az存储中有一个blob,里面有json,取回blob得到了一个八位字节,这是非常无用的,因为我无法解析它。BadRequest。属性"content"在"ParseJson"操作输入中必须为JSON类型,但其类型为"application/octet-stream"。所以我设置了一个"初始化变量",内容类型为字符串,指向GetBlobContent-〉File Content。base64转换发生在幕后,现在我可以通过变量访问我的JSON了。无需代码。
好好享受!希利在坦帕...
2cmtqfgy3#
在摆弄了很多逻辑应用程序之后,我终于明白了发生了什么。HTTP请求的JSON输出是XML有效负载的JSON表示:
{ "$content-type": "application/xml", "$content": "77u/PD94bWwgdm..." }
所以我们可以解码,但是真的没有用,那是一个LogicApp的XML对象,我们可以用xml函数,比如xpath。
jckbn6z74#
1.您需要知道内容类型。1.使用@{body('Get_blob_content')['$content']}单独获取内容部分。
anauzrmj5#
就足以“初始化变量”并将获取Blob内容的输出作为类型“String”。这将自动解析内容:
5条答案
按热度按时间hmmo2u0o1#
我找到的解决方法是使用Logic App表达式base64ToString。
例如,使用以下代码创建类型为“Compose”(数据操作组)的操作:
输出将是blob的文本表示。
zd287kbt2#
所以我在az存储中有一个blob,里面有json,取回blob得到了一个八位字节,这是非常无用的,因为我无法解析它。
BadRequest。属性"content"在"ParseJson"操作输入中必须为JSON类型,但其类型为"application/octet-stream"。
所以我设置了一个"初始化变量",内容类型为字符串,指向GetBlobContent-〉File Content。base64转换发生在幕后,现在我可以通过变量访问我的JSON了。
无需代码。
好好享受!希利在坦帕...
2cmtqfgy3#
在摆弄了很多逻辑应用程序之后,我终于明白了发生了什么。
HTTP请求的JSON输出是XML有效负载的JSON表示:
所以我们可以解码,但是真的没有用,那是一个LogicApp的XML对象,我们可以用xml函数,比如xpath。
jckbn6z74#
1.您需要知道内容类型。
1.使用@{body('Get_blob_content')['$content']}单独获取内容部分。
anauzrmj5#
就足以“初始化变量”并将获取Blob内容的输出作为类型“String”。这将自动解析内容: