WSO2 Integration Studio中Property Mediator读取Double类型值报错如何解决?
解决WSO2 Property Mediator读取JSON浮点值报错问题
问题拆解
报错信息包含两个核心原因:
Unknown type : DOUBLE:WSO2 Property Mediator不支持DOUBLE作为属性类型,正确的浮点类型标识是FLOATjava.lang.NumberFormatException: empty String:要么$.totalPrice对应的JSON字段为空,要么路径书写错误导致未取到有效值
正确处理方案
1. 修正属性类型
将配置中的type="DOUBLE"替换为type="FLOAT",WSO2的Property Mediator仅支持FLOAT作为浮点数值的类型声明。
修正后的配置代码:
<property expression="json-eval($.totalPrice)" name="TOTAL_PRICE" scope="default" type="FLOAT"/>
2. 确保字段有效且路径正确
- 检查传入的JSON负载,确认
totalPrice字段存在且为有效数字格式(如29.99,而非空字符串或非数字内容) - 验证JSON路径是否匹配实际结构,若
totalPrice嵌套在子对象中,需调整路径为$.xxx.totalPrice(例如$.order.totalPrice)
3. 处理空值场景(可选)
如果totalPrice可能为空,建议添加判断逻辑避免报错,示例配置:
<filter xpath="boolean(json-eval($.totalPrice)) and json-eval($.totalPrice) != ''"> <then> <property expression="json-eval($.totalPrice)" name="TOTAL_PRICE" scope="default" type="FLOAT"/> </then> <else> <!-- 为空时设置默认值 --> <property name="TOTAL_PRICE" scope="default" type="FLOAT" value="0.0"/> </else> </filter>
内容的提问来源于stack exchange,提问作者Ruby
相关产品推荐
相关产品推荐

