我正在尝试序列化GeneralResponse
:
case class GeneralResponse[T](succeeded: Boolean, payload: Option[T])
有效载荷是
GroupsForUserResult
:case class GroupsForUserResult(groups: Seq[UUID]).
我正在使用
mapper.readValue(response.body, classOf[GeneralResponse[GroupsForUserResult]])
,但不幸的是,有效负载已序列化为Map
而不是所需的case类(GroupForUserResult
)。 最佳答案
由于Java清除-Jackson在运行时无法从行中得知通用类型T-
mapper.readValue(response.body, classOf[GeneralResponse[GroupsForUserResult]])
解决这个问题的方法是
import com.fasterxml.jackson.core.`type`.TypeReference
mapper.readValue(json, new TypeReference[GeneralResponse[GroupsForUserResult]] {})
这样,您就可以提供
TypeReference
实例以及所有所需的Type信息。