用scala玩框架2:pretify json

时间:2012-11-11 18:29:51

标签: json scala playframework-2.0

我正在使用json的播放框架2原生支持(http://www.playframework.org/documentation/latest/ScalaJson),我有一个JsValue,我正在转换为字符串以将其保存为文本文件,像这样

val json: JsValue = [....]
Json.stringify(json)

哪种方法很好,但生成的内容如下:

{"tokens":[{"id":"1000","token":"DON...

我想知道是否有一种简单的方法来生成像这样的格式化的json

{
  "tokens":
    [
      {
        "id":"1000",
        "token":"DON...

1 个答案:

答案 0 :(得分:1)

我使用了liftweb JSON包及其Printer对象/特征。工作“非常好”:

import play.api._
import play.api.mvc._
import play.api.libs._, concurrent._, json._

import com.mongodb.casbah.Imports.{MongoConnection, MongoCursor, WriteConcern}
import com.mongodb.casbah.query.Imports._
import com.novus.salat.json._

import net.liftweb.json.{render => jsonRender, _}    

class Application extends Controller {

def getJson(id: String) = Action { implicit request =>
  val objPromise = Akka.future(Database.getById(id))
  Async {
    objPromise.orTimeout("Error", 1000).map { o =>
      o.fold(
         hit => Ok(hit.map{ o: DBObject => pretty(jsonRender(ToJValue(o)))}.getOrElse("")).as("text/json"),
         timeout => InternalServerError(timeout)
      )
    }
  }
}