Как написать простой BigInteger в контроллере Spring - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно вернуть BigInteger из контроллера Spring в числовом формате (например, 354736184430273859332531) вместо, например, 2.2311485309166910602366e + 23, что является поведением по умолчанию.

Я пробовал включить оба: spring.jackson.serialization.write-bigdecimal-as-plain=true и spring.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 голосов
/ 27 мая 2019

Измените ProductOutputDTO на следующий пример:

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

Затем измените код, который создает ProductOutputDTO, чтобы преобразовать BigIntegers в строки.

Проблема, с которой вы сталкиваетесь, заключается в том, что точность числа JSON не так точна, как у BigInteger.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...