spray-json序列化继承案例类

时间:2015-09-22 16:05:18

标签: scala inheritance spray spray-json

我有以下涉及继承的类结构

sealed trait GeometryObject
case class Point(coordinates: Array[Double],`type` :GeometryObjectsType) extends GeometryObject

case class Polygon(coordinates: Array[Array[Array[Double]]],`type` :GeometryObjectsType) extends GeometryObject

我的协议如下:

object GeoJsonProtocol extends DefaultJsonProtocol {
  implicit val geometryObjectsTypeFormat = GeometryObjectsTypeFormat
  implicit val polygonFormat = jsonFormat2(Polygon)
  implicit val pointFormat = jsonFormat2(Point)
}

获取错误 - 找不到GeometryObject类型的证据参数的隐式值。

有没有办法解决这个问题并保持继承的灵活性?

1 个答案:

答案 0 :(得分:1)

需要类层次结构父格式,如下所示:

$pattern = '/smtp:([\w]*?@.*?\.(com|local))$/im';

preg_match_all($pattern, $emails, $matches);
var_dump($matches[1]);

注意:我有单独的类层次结构,表示序列化为类型字段的类型,这是必需的,以使类层次结构序列化工作。