如何在Power Automate中将JSON对象属性名提取为数组
一、提取属性名数组
你的核心问题是从解析后的JSON数组中提取所有属性名,按以下步骤操作即可解决:
- 获取数组第一个对象:用
first()函数取解析后JSON数组的第一个元素(假设解析后的数组存储在变量ParsedJSON中),表达式为:first(variables('ParsedJSON')) - 用Select操作提取键数组:
- 添加「Select」操作,将「From」设置为上述表达式的结果
- 在「Map」中直接输入
item()['Key'](Power Automate会自动识别对象的键值对,也可手动选择键字段) - 执行后,Select的输出就是你需要的属性名数组:
["date","hour","production","machine","completeDate"]
二、自动化创建SharePoint列
拿到属性名数组后,循环创建列:
- 添加Apply to each操作,遍历上述Select输出的属性名数组
- 在循环内添加Send an HTTP request to SharePoint:
- 先判断当前属性的类型(根据数组第一个对象的对应值),表达式示例:
(注:2=文本类型,9=数字类型,4=日期时间类型,可根据实际需求调整)if(isString(first(variables('ParsedJSON'))?[item()]), 2, if(isInt(first(variables('ParsedJSON'))?[item()]),9,4)) - 请求体的表达式:
{ "__metadata": { "type": "SP.Field" }, "FieldTypeKind": @{<上述类型判断表达式>}, "Title": @{item()} }
- 先判断当前属性的类型(根据数组第一个对象的对应值),表达式示例:
常见错误说明
你之前用split或keys报错,是因为这些函数要求输入为字符串/数组,但你直接传入了JSON对象。必须先通过first()取出单个对象,再用Select操作提取键,这是Power Automate处理对象键值的标准方式。
内容的提问来源于stack exchange,提问作者Mano_Ala_1
相关产品推荐
相关产品推荐

