我想为 JSON 序列化定义一个类,如下所示:
case class Foo(id: String, variety: Variety)
sealed trait Variety
case object Bar extends Variety { override def toString = "1" }
case object Baz extends Variety { override def toString = "2" }
它应该像这样序列化和反序列化:
write[Foo](Foo("foo1", Bar))
"""{"id":"foo1", "variety":"1"}"""
read[Foo]("""{"id":"foo2", "variety":"2"}""")
Foo("foo2", Baz)
但它序列化{"id":"foo2", "variety":{}}
并且无法反序列化。是否可以使用这样的案例对象?我正在使用lift-json_2.10 2.6-M2?
有没有更好的方法来处理带有 lift-json 的枚举?