我试图通过 Play Combinators 将 JSONObject 实例映射到实际实例中。我能够使反序列化正常工作。问题是关于 map() 如何在 Option[JSONObject] 上工作的行为。
选项1:
jsonVal: Option[JSONObject] = getAsJson(input)
jsonVal.map(JSONUtil.fromJsonString(_.toString(), Blah.jsonReads))
不起作用,由于 _ 未正确解析而无法编译。编译器在对象上找不到 toString()。
选项2:
jsonVal: Option[JSONObject] = getAsJson(input)
jsonVal.map(_.toString()).map(JSONUtil.fromJsonString(_, Blah.jsonReads))
工作!有人可以告诉我为什么在作为函数参数的一部分进行转换时不传播默认变量的类型吗?