json - 案例类只有一个字段时如何将json转为案例类

标签 json scala playframework-2.1

在 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/

相关文章:

json - 带有 SQL Server 的动态 ROOT 用于 JSON PATH

Scala 数字类型模式匹配

java - Playframework 2.1.1 部署在生产服务器上

mysql - Rails 3 和 MySQL 的问题与 ActiveSupport 中的 JSON 依赖相关

java - 将 JSONObject 写入文件

scala - 在 Scala 中,如何获取 XML 节点的文本而不获取其子节点的文本?

java - Play框架-测试POST Controller 方法

playframework - Play 框架检查 HTTP 请求

javascript - 如何检查json格式的数据是否存在?

scala - Hom Functor 的逆变和Scala 的Function1 之间有什么联系吗?