我正在使用Scala的Play框架,我需要提供一个看起来像这样的输入: :
{
id: "node37",
name: "3.7",
data: {},
children:[]
},
如何使用json获取该格式?以下是Play框架网站的示例:
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
)
)
)
答案 0 :(得分: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":[]}
这是你需要的吗?
答案 1 :(得分: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]
然后在您想要MyObject
案例类的Json版本时,您可以运行:
val obj = MyObject("node37", "3.7", Json.obj(), Seq())
val jsonObj = Json.toJson(obj)
如果你有一个返回json的Controller动作,你可以将它包装在Ok结果
中Ok(jsonObj)
客户端会看到正确的 Content-Type 标题为" application / json"
您可以在Docs
中找到有关Json Library和宏的更多信息