如何在Power Apps中将详情表单转为JSON?报错求解决办法
解决Power Apps中JSON函数无法序列化控件的问题
你遇到的报错原因很明确:直接把DetailForm1控件对象传给JSON函数,而JSON函数仅能序列化数据对象,无法处理控件类型,因此触发了the json function cannot serialise objects of type control错误。以下是两种可行的解决方法:
方法一:利用表单的内置属性获取数据
将代码替换为获取表单绑定的记录数据,而非控件本身:
'PowerApp->Content'.Run(JSON(DetailForm1.Updates, JSONFormat.IncludeBinaryData))
DetailForm1.Updates会返回表单中用户编辑后的所有字段键值对,属于可被JSON序列化的数据类型;- 如果表单处于查看模式(View Mode),
Updates可能返回空值,此时可以改用DetailForm1.Default获取表单绑定的原始记录。
方法二:手动构造需要序列化的字段
如果仅需表单中的部分数据,可直接提取控件值并组合成自定义记录:
'PowerApp->Content'.Run(JSON({ 姓名: DetailForm1.TextInput_Name.Value, 部门: DetailForm1.Dropdown_Department.Selected.Value, 附件: DetailForm1.Attachment_File.Attachments }, JSONFormat.IncludeBinaryData))
这种方式能精准控制要序列化的字段,避免冗余数据。
额外注意事项
- 若需处理附件数据(依赖
JSONFormat.IncludeBinaryData),要确保对应的Power Automate流能正确解析二进制内容,同时注意Excel无法直接存储二进制文件,可能需要将附件转成Base64字符串或文件链接后再写入; - 确认表单已绑定有效数据源,保证
Updates或Default能返回正常的记录数据。
内容的提问来源于stack exchange,提问作者Jeet Shah
相关产品推荐
相关产品推荐

