【发布时间】:2015-06-14 02:45:57
【问题描述】:
当我使用以下代码时:
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 类使用伴随对象。是什么问题,为什么找不到隐含值?
【问题讨论】:
-
两者都应该工作,所以你的代码中还有其他东西会导致问题。您可以尝试在实例定义中添加显式返回类型,然后可能是
-Xlog-implicits? -
@TravisBrown `键入 graphFormat 解决了它,谢谢!我想学习 Scala 类型系统已经超出了我的能力范围。总有一些东西!
-
为类型类实例提供显式类型注释总是一个好主意(它应该是强制性的),尤其是在处理宏时。
标签: scala playframework implicit-conversion