Power Automate生成JSON格式异常:需输出对象却生成带方括号的数组
解决Power Automate从Excel生成JSON时字段被转为数组的问题
问题说明
用Power Automate流程从Excel生成JSON文件时,first_name、full_name这类本该输出单个字符串的字段,现在被包裹在方括号里变成了数组,和预期格式不符:
预期输出格式
{ "first_name": "John", "full_name": "John Doe" }
当前错误输出格式
{ "first_name": ["John"], "full_name": ["John Doe"] }
具体解决步骤
1. 针对单条数据:直接取数组第一个元素
如果是通过「List rows present in a table」获取数据,默认返回的是多行数据的数组,即使只有一条记录,单个字段也会被封装成数组。此时在引用字段时,加上[0]索引取第一个元素即可:
- 把原本的表达式
items('Apply_to_each')?['first_name']改成items('Apply_to_each')?['first_name'][0] - 如果是直接引用列表输出,比如
body('List_rows_present_in_a_table')?['first_name'],改成body('List_rows_present_in_a_table')?['first_name'][0]
2. 改用「Get a row」动作获取单条数据
如果只需要处理Excel中的单条记录,直接用「Get a row」动作代替「List rows present in a table」。引用字段时直接写 outputs('Get_a_row')?['body/first_name'],返回的就是单个字符串,不会生成数组。
3. 批量处理时用Select动作转换
如果是批量处理多条数据,在Select动作里定义字段映射:
- 键栏填写
first_name - 值栏填写表达式
item()?['first_name'][0]
对每个需要修正的字段都做同样处理,最终Select输出的JSON里字段就会是单个值而非数组。
4. 修正Compose里的表达式
查看你Compose操作的表达式,确认是否直接引用了列表返回的字段。把对应字段的表达式末尾加上[0],就能去掉外层的方括号。
内容的提问来源于stack exchange,提问作者Megan
相关产品推荐
相关产品推荐

