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

Printerそのオブジェクト/トレイトでliftwebJSONパッケージを使用しました。「かなり」うまく機能します:

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 に答える