Json变压器 - 来自2个现有变压器的新领域

时间:2013-03-16 17:37:45

标签: scala playframework-2.0

使用json API,如何为以下内容编写变换器:

{
"name":"John Doe",
"number":22
}

{
"name":"John Doe",
"number":22,
"slug":"John-Doe-22"
}

使用字符串操作是可行的,但如何从2个字段中选择值并将其应用于它们?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

val json = Json.obj(
   "name" -> JsString("John Doe"),
   "number" -> JsNumber(22)
)

val transformed = 
   json.transform(
      __.json.update(
        (__ \ 'slug).json.put(JsString(
          (json \ "name").as[String].replace(' ', '-') + "-" + (json \ "number").as[Int]
        ))
      )
   ).get

Ok(transformed.toString())
//{"name":"John Doe","number":22,"slug":"John-Doe-22"}

Here是关于播放json trasformations的好文章。