当我使用以下代码时:
import JsonImpl.graphFormat
val js = Json.toJson(g)(graphFormat)
我的代码编译并工作正常,但当我这样做时,它不起作用并显示:“没有找到 SGraph 类型的 Json 序列化程序。尝试为此类型实现隐式写入或格式。”
import JsonImpl.graphFormat
val js = Json.toJson(g)
JsonImpl
是:
object JsonImpl{
implicit val graphFormat = Json.format[SGraph]
}
我不想为我的 SGraph
类使用伴生对象。问题是什么?为什么找不到隐含值?
最佳答案
为了完整起见:Json.format
是一个宏,当您处理宏时,最好确保您返回的内容是适当的静态类型:
object JsonImpl{
implicit val graphFormat: Format[SGraph] = Json.format[SGraph]
}
事实上,每当您处理隐式值时,这都是一个好主意,它会为您节省很多困惑(有时是因为您做错了什么,有时是因为编译器做错了)。
关于scala - 寻找游戏中 Json 的隐含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30825523/