Scala: Разобрать JSON в класс case с переопределением с помощью аннотации JsonGetter - PullRequest
0 голосов
/ 08 мая 2020
• 1000 * и результирующий JSON будет
{
  "app_token" : "myToken",
  "id" : "123"
}

, но я получаю

{
      "token" : "myToken",
      "id" : "123"
}

1 Ответ

1 голос
/ 08 мая 2020

Он будет работать с регистром DefaultScalaModule и FAIL_ON_UNKNOWN_PROPERTIES как false.

Фрагмент кода класса случая:

import com.fasterxml.jackson.annotation.JsonGetter
import scala.annotation.meta.field

case class RequestJson(@(JsonGetter @field)("app_token") token: String, id: String) {}

Фрагмент кода сопоставителя:

import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper}
import com.fasterxml.jackson.module.scala.DefaultScalaModule

val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true)

val request = RequestJson("mytoken", "123")
val str = mapper.writeValueAsString(request)
println(str)
//{"app_token":"mytoken","id":"123"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...