如何使用play框架响应漂亮的JSON对象?

问题描述 投票:12回答:2

如何使用Play发送!框架,格式化为人类可读的JSON响应?

例如,我正在寻找类似的东西:

def handleGET(path:String) = Action{ implicit request =>
  val json = doSomethingThatReturnsAJson(path,request)
  request.getQueryString("pretty") match {
    case Some(_) => //some magic that will beautify the response
    case None => Ok(json)
  }
}

我的搜索引导我去了JSON pretty-print,这对它本身并不是很有帮助,但它的确表示该功能应该在未来的版本中集成。那就是2.1.X,所以,我猜它已经存在于2.2X版本的游戏中?

json scala playframework pretty-print
2个回答
21
投票

Play框架内置了漂亮的打印支持:

import play.api.libs.json.Json
Json.prettyPrint(aJsValue)

因此,在您的情况下,执行以下操作就足够了:

def handleGET(path:String) = Action { implicit request =>
  val json = doSomethingThatReturnsAJson(path, request)
  request.getQueryString("pretty") match {
    case Some(_) => Ok(Json.prettyPrint(json)).as(ContentTypes.JSON)
    case None => Ok(json)
  }
}

-2
投票

你可以使用Gson来打印Json字符串,不知道scala;但这是一个Java示例,您可以将其转换为scala并使用它:

Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonStr = gson.toJson(obj);
System.out.println(jsonStr);
© www.soinside.com 2019 - 2024. All rights reserved.