编译器如何找到Json.obj()的隐式方法?

时间:2018-05-26 09:32:27

标签: scala playframework play-json

我们可以像这样建立一个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?在此先感谢您的回复!

1 个答案:

答案 0 :(得分:0)

我从这里得到答案Outer Objects for Nested Types。原因是嵌套类型的外部对象也会产生暗示。