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

JBPM通过REST API启动流程传递Float变量被转为Double问题咨询

JBoss流程引擎REST接口传递Float类型参数解决方案

问题根本原因

  • JSON标准本身不存在Float、Double的细分类型,所有小数数值默认会被JSON解析器识别为Double类型。你尝试的500.0f写法不符合标准JSON语法规范,因此无法被正常解析。
  • JBoss流程引擎默认采用Double作为小数参数的映射类型,无显式类型声明时不会自动转换为Float类型。

可行解决方案

方案1:显式声明变量类型(最推荐)

JBoss官方提供的流程启动REST接口支持在请求payload中显式指定变量类型,调整你的请求结构如下即可生效:

{
  "variables": {
    "amount": {
      "type": "Float",
      "value": 500.0
    }
  }
}

引擎识别到type字段的Float声明后,会自动将数值转换为Float类型赋值给对应流程变量。

方案2:强制指定JSON反序列化类型

如果你的请求参数是直接映射到自定义Java实体类,可以在对应实体的amount字段上添加Jackson注解(JBoss默认使用Jackson作为JSON解析组件),强制将传入的小数反序列化为Float类型:

@JsonDeserialize(as = Float.class)
private Float amount;

方案3:流程前置逻辑做类型转换

如果上述两种方案都无法落地,可以在流程启动的前置监听器/拦截逻辑中,先获取被解析为Double类型的amount参数,手动调用floatValue()方法转换为Float类型后再赋值给流程变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:45:01