scala - 编译器如何找到 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
成功?提前感谢您的回复!
解决方案
我从这里Outer Objects for Nested Types得到了答案。原因是嵌套类型的外部对象也贡献了隐式。
推荐阅读
- python - TypeError:列表索引必须是整数或切片,而不是尝试使用 ONNX 转换时出现 str 错误
- python - 运行“Django manage.py migrate”命令后出现此错误
- android-studio - 如何在 Android 上使用 OpenCV 人脸包?
- python - 我想从 csv 文件中获取每一行并存储打印输出,同时获取 range(10) ValueError: 'nrows' must be an integer >=0
- parallel-processing - MPI_Reduce 和 MPI_Allreduce 的默认实现需要多少跳?
- reactjs - 如何在 React 中添加 activeClass
- python - Firefox 中的 Python Selemium - 单击按钮仅适用于无头模式
- php - 在 Apache2 的 Debian Linux 服务器上安装/启用 PHP LDAP
- javascript - Browserify 窗口函数未定义
- react-native - BottomTabNavigator 未出现在屏幕底部