play.api.libs.json.Format没有实例可用于scala.Iterable [java.lang.String中]
问题描述:
尝试使用的打版2.6.2和Scala 2.11.11play.api.libs.json.Format没有实例可用于scala.Iterable [java.lang.String中]
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中在 的隐含范围(提示:如果在同一个文件中声明,请确保它是之前声明的 )
我在期待Play自动映射这些字段,因为它们不是复杂的对象类型,而是简单的字符串集合。
答
您提供“太多”隐含的东西与您的导入。如果你删除了第一个导入的所有导入项,它将会编译并做你想要的。
如果通过scalac选项-Xlog-implicits
启用隐式参数记录,则会看到各种“ambigouity”和“diverging implicit expansion”错误。冲突的进口是import play.api.libs.json.Reads._
/import play.api.libs.json.Writes._
和import play.api.libs.json.Format._
。也许别人可以更详细地解释这个冲突。