4

私は Scala で Play フレームワークを使用しており、次のような入力を与える必要があります: :

{
  id: "node37",
  name: "3.7",
  data: {},
  children:[]
},

jsonでその形式を取得するにはどうすればよいですか? Play フレームワークの Web サイトの例を次に示します。

val JsonObject= Json.obj(
  "users" -> Json.arr(
    Json.obj(
      "id" -> "bob",
      "name" -> 31,
      "data" -> JsNull,
      "children" ->JsNull
    ),
    Json.obj(
      "id" -> "kiki",
      "name" -> 25,
      "data" -> JsNull,
      "children" ->JsNull
    )
  )
)
4

2 に答える 2

1

ケースクラスを Json に変換するために、Json ライブラリ マクロを使用することもできます。

import play.api.libs.json._

case class MyObject(id: String, name: String, data: JsObject = Json.obj(), children: Seq[MyObject])


implicit val myObjectFormat = Json.format[MyObject]

次に、ケース クラスの Json バージョンが必要な場合は、次のコマンドMyObjectを実行します。

val obj = MyObject("node37", "3.7", Json.obj(), Seq())
val jsonObj = Json.toJson(obj)

また、json を返すコントローラー アクションがある場合は、それを Ok 結果でラップできます。

Ok(jsonObj)

そして、クライアントはこれを適切なContent-Typeヘッダーで "application/json" として認識します。

Json ライブラリとマクロの詳細については、ドキュメントを参照してください。

于 2014-07-18T20:29:37.537 に答える
1
scala> import play.api.libs.json._
import play.api.libs.json._

scala> Json.obj("id" -> "node37", "name" -> "3.7", "data" -> Json.obj(), "children" -> Json.arr())
res4: play.api.libs.json.JsObject = {"id":"node37","name":"3.7","data":{},"children":[]}

これはあなたが必要なものですか?

于 2013-05-13T12:40:35.910 に答える