尝试使用播放版本2.6.2和scala 2.11.11
映射一个简单的类import play.api.libs.json._
import play.api.libs.json.util._
import play.api.libs.json.Reads._
import play.api.libs.json.Writes._
import play.api.libs.json.Format._
import play.api.libs.functional.syntax._
case class ObjectInfo (
names : Iterable[String],
info : Iterable[String]
)
object ObjectInfo {
/**
* Mapping to and from JSON.
*/
implicit val documentFormatter = Json.format[ObjectInfo]
}
获得:
没有play.api.libs.json.Format的实例可供使用 scala.Iterable [java.lang.String],scala.Iterable [java.lang.String] in 隐式范围(提示:如果在同一个文件中声明,请确保它 之前宣布)
我希望Play自动映射这些字段,因为它们不是复杂的对象类型,而是简单的字符串集合。
答案 0 :(得分:2)
你提供太多"你的进口隐含的东西。如果删除所有导入但第一个导入,它将编译并执行您想要的操作。
如果您通过scalac选项-Xlog-implicits
启用隐式参数记录,您将看到各种" ambigouity"和"分歧隐含扩张"错误。有冲突的导入是import play.api.libs.json.Reads._
/ import play.api.libs.json.Writes._
和import play.api.libs.json.Format._
。也许其他人可以更详细地解释这个冲突。