1
我有两个班,和他们每个人包含其他:Play2斯卡拉 - JSON格式与循环依赖
import play.api.libs.json.Json
case class Param(name: String,
data: ParamData)
case class ParamData(`type`: String,
value: String,
options: Option[List[Param]])
implicit val paramDataJsonFormat = Json.format[ParamData]
implicit val paramJsonFormat = Json.format[Param]
当我定义了JSON格式我得到一个编译错误:
Error:(110, 51) No implicit format for List[Param]] available.
implicit val paramJsonFormat = Json.format[Param]
如果我改变暗示的顺序,我会在另一行发现相同的错误:
Error:(110, 51) No implicit format for List[ParamData]] available.
implicit val paramDataJsonFormat = Json.format[ParamData]
我该如何解决这个问题?
你将如何实例化这些类之一?我看到的唯一方法是在两个参数之一中添加一个“null”,或者在“ParamData”中添加一个空列表。 –
@EndeNeu你说得对。 “ParamData”的“选项”成员是可选的。我将编辑该问题。谢谢 – tano
虽然这并不改变我暗示的内容,但通常当我最终得到循环引用时,这是因为我的设计中存在缺陷,即使使用选项,您仍然可以使用“None”或“有些是空的清单,你可以看到有很多不同之处。 –