本文介绍了Play2 Scala - 具有循环依赖的 Json 格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我有两个类,每个类都包含另一个类:

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 格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 22:54