Playframework play.api.libs.json.Json.format真实用例

时间:2013-11-25 19:06:16

标签: json scala playframework-2.1

我想转换我的东西:

case class Message (
     var text: String = "",
     var `type`: String = "error"
 )

case class ValidationFieldError(
     var fieldName:String, message:Message,
     var value:String = "",
     var suggestions:List[String] = List[String]()
)

到json对象......

import play.api.libs.json.{Json, JsValue}

..在这里,我尝试使用Json.format

implicit val validationFieldErrorFormat = Json.format[Message]
implicit val validationFieldErrorFormat = Json.format[ValidationFieldError]

..  当我做Json.toJson(errors)时,我得到了json数组。非常好。我希望得到json对象。要像这样回到json结构:

{ 
  "email": { 
        "message": {"type": "error", "text": "email duplication"}, 
         "value": "", 
         "suggestions": [ ] 
      },
  "username" : {... etc. } 
}

我一直在尝试尝试但现在放弃了。使用StringBuilder获得所需的json。

问:进行此类结构/转换的方法是什么。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

Json.obj(
  "email" -> Json.obj(
    "message" -> Json.obj("type" -> "error", "text" -> "email duplication"), // or use Json.toJson(your object)(implicit format) with desired Format 
    "value" -> "",
    "suggestions" -> Seq()
  ),
  "username" -> Json.obj(...)
)