如何在Spring控制器中编写普通的BigInteger

时间:2019-05-27 16:09:47

标签: json spring kotlin jackson

我需要以数字格式(例如354736184430273859332531)从Spring控制器返回BigInteger,而不是例如2.2311485309166910602366e + 23这样的默认行为。

我尝试同时包括:spring.jackson.serialization.write-bigdecimal-as-plain=truespring.jackson.generator.write-bigdecimal-as-plain=true在application.properties中

我要返回的对象如下:

data class ProductOutputDTO(
    val token: BigInteger,
    val product: BigInteger
)

和控制器代码:

@RestController
class Product {

    @PostMapping("/product")
    fun product(@RequestBody input: ProductInputDTO): ProductOutputDTO
            = ProductOutputDTO(input.token, input.a * input.b)

}

1 个答案:

答案 0 :(得分:0)

将您的ProductOutputDTO更改为以下示例:

data class ProductOutputDTO(
    val token: String,
    val product: String
)

然后更改创建ProductOutputDTO的代码,以将BigIntegers转换为Strings。

您遇到的问题是JSON Number的精度不如BigInteger精确。