问题描述
我有两个类,每个类都包含另一个类:
I have two classes, and each of them contains the other:
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 格式时出现编译错误:
when I define the Json format I get a compilation error:
错误:(110, 51) List[Param]] 没有可用的隐式格式.
隐式 val paramJsonFormat = Json.format[Param]
implicit val paramJsonFormat = Json.format[Param]
如果我改变了隐式的顺序,我会在另一行得到同样的错误:
If I change the order of the implicits I get the same error on the other line:
错误:(110, 51) List[ParamData]] 没有可用的隐式格式.
隐式 val paramDataJsonFormat = Json.format[ParamData]
implicit val paramDataJsonFormat = Json.format[ParamData]
我该如何解决这个问题?
How can I solve this?
推荐答案
在 播放官方文档.有一个关于我遗漏的递归类型的特定部分.
Found the solution in the Play official documentation. There is a specific section regarding recursive types I was missing.
这篇关于Play2 Scala - 具有循环依赖的 Json 格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!