You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Apps条码扫描功能失效,JSON解析及Value识别报错求助

Power Apps条码扫描器集合存储与Gallery展示故障修复

问题背景

原功能实现逻辑:

  • 条码扫描器OnScan属性公式:
    Collect(colBarcodes,Self.Barcodes)
    
  • Gallery控件Items设为colBarcodes,内部文本标签公式:
    Thisitem.Value
    

功能自上线后正常运行,2025年2月21日突然失效,出现两个核心错误:

JSON paring error. expected 'object' but got 'array'
Name isn't valid. 'Value' isn't recognized

尝试修改OnScan为Collect(colBarcodes,{Barcode : BarcodeReader1.Barcodes})、文本标签为Thisitem.Barcode后问题仍未解决。

故障原因推测

Power Apps条码扫描器控件的Barcodes属性返回结构发生版本更新:此前该属性返回单个对象(格式为{Value: "条码内容"}),更新后改为返回包含条码对象的数组(格式为[{Value: "条码1"}, {Value: "条码2"}...])。原公式仅适配单个对象结构,无法处理数组类型,因此触发解析错误,同时Gallery因集合记录结构变更无法识别Value字段。

修复方案

方案1:直接适配数组结构(推荐)

修改条码扫描器的OnScan属性公式:

// 可选:若需清空历史扫描记录,保留则删除Clear行
Clear(colBarcodes);
// 将数组中的每个条码对象直接存入集合
Collect(colBarcodes, Self.Barcodes)

Gallery及文本标签保持原配置:

  • Gallery的Items属性:colBarcodes
  • 文本标签公式:ThisItem.Value

效果:扫描到的每个条码会作为集合的独立记录存储,Gallery可正常遍历显示所有条码内容。

方案2:自定义集合字段名

若需使用自定义字段名(如Barcode),修改OnScan属性公式:

Clear(colBarcodes);
// 遍历条码数组,将每个条码值存入自定义字段
ForAll(Self.Barcodes, Collect(colBarcodes, {Barcode: ThisRecord.Value}))

同步修改文本标签公式:

ThisItem.Barcode

验证方法

添加临时标签控件,设置其Text属性为JSON(Self.Barcodes),扫描条码后查看返回结构,确认是否为数组格式,以此验证故障原因并确认修复后的集合结构。

原修改无效的原因

此前尝试的Collect(colBarcodes,{Barcode : BarcodeReader1.Barcodes})是将整个条码数组作为单个记录的Barcode字段存入集合,导致集合中每条记录的Barcode字段是数组类型,而非单个条码值,因此Gallery无法直接解析显示。

内容的提问来源于stack exchange,提问作者Ployphet Veerasak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:52:38