scala - 寻找游戏中 Json 的隐含值

标签 scala playframework implicit-conversion

当我使用以下代码时:

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/

相关文章:

scala - 构造自定义for循环

scala - 当 x.toString 失败时,ScalaRunTime.stringOf(x) 如何不失败?

database - Play! 中的 SSL 连接框架

C++ 构造函数隐式类型转换

java - 有线 scala 类型设计

eclipse - 为 Scala IDE 配置 Lift 项目

java - 使用 Play 框架处理 REST URL 错误

playframework - Play 的成功案例!框架?

c - C 相等运算符是否比较两个字符串的字面值或其内存位置?

c++ - 是否应该将整数值传递给浮点用户定义的文字?