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」或「有些是空的清單,你可以看到有很多不同之處。 –