【发布时间】:2021-03-06 01:32:28
【问题描述】:
我有一个来自 API 响应的 json,如下所示:
[{
value: true(Boolean),
name: "xyz",
date: 11/12/2020
},
{
value: "abc"(String),
name: "djd",
date: 11/12/2020
}]
它基本上具有相似的结构,但其中一个属性(值)可能包含不同的数据类型。如何将此响应解析为一个类?我正在尝试这样做,但我不确定如何编写 MainData 类。有什么想法吗?
trait Data[A] {
val value: A
val date: ZonedDateTime
val name: String
}
case class ClassA(
value: Boolean,
name: String,
date: ZonedDateTime
) extends Data[Boolean]
case class ClassB(
value: String,
name: String,
date: ZonedDateTime
) extends Data[String]
case class MainData(data: Seq[Data[A])
在响应处理程序中,是这样的:
case rsp if 200 == rsp.status =>
val response = rsp.body.as[MainData[A]]
【问题讨论】:
-
您使用的是哪个 JSON 库?
-
我正在使用 play.api.libs.json
标签: json scala rest generics playframework