如何使用Play框架在scala中读取json数组

时间:2015-12-24 16:25:33

标签: scala playframework-2.0

我将以下Json作为var dataObject ={"files": ["code.R", "data.cv", "input.txt"]}。 我从客户端发布这个json作为正文,我想解析Json并在play scala中读取服务器端的这些文件名。

请帮忙

2 个答案:

答案 0 :(得分:1)

因为你只有一个字段,所以你不能使用json组合器, 但你可以这样做:

case class Selection(files:List[String])
object Selection{
   implicit val selectionReads = (__ \ 'files).read[List[String]].map{ l => Selection(l) }
   implicit val selectionWrites = (__ \ 'files).write[List[String]].contramap { (selection: Selection) => selection.files}

   //You can replace the above 2 lines with this line - depends on you.
   implicit val selectionFormat: Format[Selection] = (__ \ 'files).format[List[String]].inmap(files => Selection(files), (selection: Selection) => selection.files)
}

确保导入:

import play.api.libs.functional.syntax._

答案 1 :(得分:0)

这是文档:https://www.playframework.com/documentation/2.5.x/ScalaJson

解决方案很简单:

import play.api.libs.json._

val json: JsValue = Json.parse("{ "files": ["code.R","data.csv","input.txt"] }")

val files = (json \ "files").get