【发布时间】:2013-10-10 22:29:12
【问题描述】:
我想使用 LiftJson 或 Json4s 将以下 Json(不完全但类似)提取到以下案例类。
{
"data": [
{
"id": "1234",
"message": "Test",
"comments": {
"data": [
{
"id": "4321",
"content": "Test2",
}
]
}
}
案例类:
case class A(id: String, message: string, comments: List[B])
case class B(id: String, content: String)
对于我可以做的顶级:(val \ "data").extract[List[A]] 来展平额外的数据字段。但是对于第二级,我看不到直接使用提取的方法。
我可以使用自定义序列化程序(例如here)或以下任何函数(json4s)来删除无关的“数据”字段吗?或者有什么让它变得简单的想法?
def mapField(f: JField => JField): JValue
def transformField(f: PartialFunction[JField, JField]): JValue
我想避免创建其他中间案例类来提取数据,然后用它创建显示的案例类。
【问题讨论】:
-
您是否尝试过使用transformField 使用JFIeld("data", value) 上的模式匹配,直接返回值?