Gal*_*Gal 5 serialization json scala case-class jackson
我试图序列化GeneralResponse:
case class GeneralResponse[T](succeeded: Boolean, payload: Option[T])
Run Code Online (Sandbox Code Playgroud)
有效载荷是GroupsForUserResult:
case class GroupsForUserResult(groups: Seq[UUID]).
Run Code Online (Sandbox Code Playgroud)
我正在使用mapper.readValue(response.body, classOf[GeneralResponse[GroupsForUserResult]])但不幸的是,有效载荷被序列化为a Map而不是所需的case类(GroupForUserResult).
由于Java Erasure - Jackson无法在运行时知道关于通用类型T的行 -
mapper.readValue(response.body, classOf[GeneralResponse[GroupsForUserResult]])
Run Code Online (Sandbox Code Playgroud)
这个问题的解决方案将是
import com.fasterxml.jackson.core.`type`.TypeReference
mapper.readValue(json, new TypeReference[GeneralResponse[GroupsForUserResult]] {})
Run Code Online (Sandbox Code Playgroud)
这样,您就可以提供TypeReference包含所有所需类型信息的实例.
| 归档时间: |
|
| 查看次数: |
2545 次 |
| 最近记录: |