2

我正在使用对 json (http://www.playframework.org/documentation/latest/ScalaJson) 的 play framework 2 本机支持,并且我有一个 JsValue,我将其转换为字符串以将其保存到文本文件中,例如这个

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

哪个工作正常,但会生成如下内容:

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

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

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

1 回答 1

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)
      )
    }
  }
}
于 2012-11-12T22:09:13.847 回答