首页 > 解决方案 > 编译器如何找到 Json.obj() 的隐式方法?

问题描述

我们可以像这样构建一个 json 对象:

import java.time.Instant
import play.api.libs.json.Json

object Test extends App {
  println(Json.obj("time" -> Instant.now()))
  //Output: {"time":"2018-05-25T18:13:23.409Z"}
}

Json.obj() 方法的签名是:

def obj(fields: (String, JsValueWrapper)*): JsObject

虽然隐式方法Json.toJsFieldJsValueWrapper不在范围内,但如何Instant.now()转换为JsValueWrapper成功?提前感谢您的回复!

标签: scalaplayframeworkplay-json

解决方案


我从这里Outer Objects for Nested Types得到了答案。原因是嵌套类型的外部对象也贡献了隐式。


推荐阅读