在 play 2.1 中,读取用于将 Json 编码到对象。但是当案例类只有一个字段时,我该怎么做。适用于更多领域的理念不起作用,因为没有使用一个领域“和”。因此我没有得到 FunctionBuilder。
下面的代码给了我一个类型不匹配。我该如何解决这个问题?
case class Data(stamm: Seq[String])
implicit val dataReads = (
(__ \ "stamm").read(Reads.list[String])
)(Data)
最佳答案
正如 Julien 回答的那样,您可以使用以下方法阅读单字段案例类:
case class Person(name: String)
val personReads: Reads[Person] =
(__ \ "name").read[String].map { name => Person(name) }
只是一个补充,如果你想写:
val personWrites: Writes[Person] =
(__ \ "name").write[String].contramap { (person: Person) => person.name }
或格式化(读写):
val personFormat: Format[Person] =
(__ \ "name").format[String].inmap(name => Person(name), (person: Person) => person.name)
对于写入和格式,您必须导入以下内容:
import play.api.libs.functional.syntax._
关于json - 案例类只有一个字段时如何将json转为案例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14754092/