Azure Logic App中从JSON提取图片URL并保存至SharePoint的方法
以下是针对数量不确定的图片对象(如Tree1、Tree2等)的实现步骤:
1. 解析输入的JSON字符串
添加Parse JSON动作,将原始JSON字符串转换为结构化对象:
- 输入内容:选择你的JSON字符串来源(如触发动作的输出)
- 点击「Use sample payload to generate schema」,粘贴提供的JSON示例,自动生成对应Schema,让Logic App识别数据结构。
2. 筛选所有图片对象
因为图片对象是包含fileName和url属性的顶层节点(排除id、Person、Timestamp这类通用字段),按以下操作筛选:
- 先添加Select动作,将顶层对象转为键值对数组:
- 输入选择Parse JSON的
Body - 映射设置两个字段:
- Key:
@item().Key - Value:
@item().Value
- Key:
- 输入选择Parse JSON的
- 添加Filter array动作处理Select的输出,筛选条件表达式为:
这样就能得到所有图片对象的数组。@and(contains(item()?['Value'], 'fileName'), contains(item()?['Value'], 'url'))
3. 循环处理单张图片
添加For each循环,选择Filter array输出的数组作为循环输入。
4. 下载图片二进制内容
在循环内部添加HTTP动作:
- 方法选
GET - URI填写图片的URL:
@items('For_each')?['Value']?['url'] - 在动作设置中,将返回内容设为Binary。
5. 保存到SharePoint目标文件夹
在HTTP动作后添加SharePoint的Create file动作:
- 站点地址:选择目标SharePoint站点
- 文件夹路径:指定保存路径(如
/Shared Documents/Images) - 文件名称:
@items('For_each')?['Value']?['fileName'] - 文件内容:选择HTTP动作的
Body(即下载到的图片二进制内容)
处理嵌套图片对象(可选)
如果JSON存在嵌套的图片对象(如示例中Tree2内部包含Tree3),可在For each循环内添加Condition动作:
- 判断当前对象的Value是否包含子级图片对象(即子节点存在
fileName和url) - 条件成立时,重复步骤2-5的逻辑,对嵌套对象进行筛选和循环处理。
内容的提问来源于stack exchange,提问作者Anna
相关产品推荐
相关产品推荐

