【问题标题】:Spring rest api why does data type getting changed in the response from rest api callSpring rest api为什么在rest api调用的响应中数据类型发生变化
【发布时间】:2020-09-12 14:30:38
【问题描述】:

有一个函数返回一个带有对象数组列表列表的响应实体

return new ResponseEntity<>(apiResponse, HttpStatus.OK);

例如,

以下数组列表的列表,

row1{1,353543.23,100L}
row1{2,232.56,110L}.....

在调试时我知道在这个阶段响应在 apiResponse 对象中具有 BigDecimal 或 long 字段值,它是对象的数组列表列表(对象的类型为 Bigdecimal/long),但是当它进入调用时函数我看到响应,这些 BigDecimal 或 long 值已转换/视为 Integer/double 取决于数字中是否存在小数,这发生在小数字上。我不明白它在哪里以及为什么决定自己在传输时更改数据类型。

因此,我试图处理此响应的函数给出了一个错误,即无法将 Integer 转换为 Double/long,理想情况下,因为正在发送 bigdecimal 和 long 值,我希望这些值保持原样,保留其数据输入但不是这样

【问题讨论】:

    标签: java spring-boot api rest custom-data-type


    【解决方案1】:

    默认情况下,spring 使用jackson 作为序列化程序,因此您可以检查您现在使用的版本是否存在问题:)

    【讨论】:

    • 我使用的是 Spring boot 2.1.6 和 jackson 2.9
    • 我再次阅读了您的问题,所以我的理解是否正确,您有一个作为响应实体传递的数字列表?您的列表的确切类型是什么?
    • 我试图解释这个问题中的场景stackoverflow.com/questions/62019039/…
    猜你喜欢
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多