2013-05-13 4 views
4

스칼라/플레이 프레임 워크에서 JSON 파일을 구축하고, 그래서 같이 할 수있는 입력 줄 필요가 : 어떻게 포맷 것을 얻을 수내가 스칼라와 재생 프레임 워크를 사용하고

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

: 를 json과?

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 
    ) 
) 
) 

답변

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

당신은 또한 당신이 바로 실행할 수는 MyObject 경우 클래스의 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 라이브러리 매크로를 사용할 수 있습니다 :

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

그리고 당신은 JSON을 반환하는 컨트롤러 액션이있는 경우 당신은 확인 결과

Ok(jsonObj) 
에 포장 할 수 있습니다3210

그리고 클라이언트는 "응용 프로그램/JSON"등의 적절한 Content-Type을 헤더이 표시됩니다

당신은 더 JSON 라이브러리에 대한 정보와 Docs

에서 매크로를 찾을 수 있습니다

관련 문제