我具有以下密封的特征等级
case class OrderBy(parameter: OrderByParameter)
sealed trait OrderByParameter
case object group extends OrderByParameter
case class relation(name: String, isMain: Boolean) extends OrderByParameter
case class field(name: String) extends OrderByParameter
我正在使用play-json-2.6
和play-json-derived.codecs
库来解码json,尤其是密封的特征层次。
到目前为止,我正在使用派生的读者
implicit val readsOrderByParameter = reads[OrderByParameter]
implicit val readOrderBy = reads[OrderBy]
这意味着要解码的JSON表示应为:
{
"parameter": {
"relation": {
"name": "bar",
"isMain" : true
}
}
}
或
{
"parameter": {
"group": ""
}
}
或
{
"parameter": {
"field": {
"name": "foo"
}
}
}
我想要实现的是JSON,它可以解码成类似以下的类:
{
"parameter": {
"relation": {
"name": "bar",
"isMain" : true
}
}
}
{
"parameter": "group"
}
{
"parameter": {
"field": "foo"
}
}
有没有太多麻烦的可能吗?