json - 如何在 play framework 2.0 上将 scala 中的 mutableList 解析为 JSON?

标签 json scala playframework playframework-2.0

我正在研究 Play Framework 2.0,它使用 Jerkson 来解析 JSON 字符串。我成功地使用它来解析不可变字符串列表,如下所示:

Json.parse( jsonStr ).as[ List[String] ]

但是当我尝试时这段代码对我不起作用

Json.parse( jsonStr ).as[ MutableList[String] ]

有谁知道如何轻松做到这一点?

最佳答案

由于 traversableReads 替换了 seqReads in the current trunk,您的第二行将像在 Play 2.0 的 future 版本中一样工作:

implicit def traversableReads[F[_], A](implicit bf: generic.CanBuildFrom[F[_], A, F[A]], ra: Reads[A]) = new Reads[F[A]] {
  def reads(json: JsValue) = json match {
    case JsArray(ts) => {
      val builder = bf()
      for (a <- ts.map(fromJson[A](_))) {
        builder += a
      }
      builder.result()
    }
    case _ => throw new RuntimeException("Collection expected")
  }
}

所以如果你愿意to build Play from source ,或者等待,你很好。否则,您应该能够将上面的方法放在您自己的代码中的某处,以在范围内获得适当的 Reads 实例,或者 - 甚至更好 - 只需使用 Alexey Romanov 的解决方案,或者 - 最重要的是 - 不要不要使用 MutableList

关于json - 如何在 play framework 2.0 上将 scala 中的 mutableList 解析为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088164/

相关文章:

scala - 如何在普通 sbt 项目中使用 play ws 库而不是 play?

scala - 用于案例对象的Play框架JSON格式

javascript - jQuery 将参数传递给 $.get() 回调函数

python redis hget 字符串转字典

scala - 如何将 Option 与 Spark UDF 结合使用

Scala:你能重载一个构造函数而不仅仅是一个单行构造函数吗?

scala - 嵌套对象和成员变量的构造顺序

java - 从 java.util.concurrent.Future<T> 到 play.libs.F.Promise<T> : How to do that in Java?

php - 谷歌 QPX Express API PHP

java - 使用 json 数据创建动态 TreeView - jsp 中的 dynatree