2014-02-27 4 views
4

JsObject에 새 필드를 추가 할 수 있습니까?Play2 JsObject에 새 필드 추가

val jsonObj = Json.obj() 
jsonObj.put("field" -> 100) <==== Somthing like this 

나는 새로운 필드를 추가하는 많은 방법이 있습니다. 어떻게 JsObject를 동적으로 생성 할 수 있습니까?

+0

내가 이런 걸 발견 jsonObj ++ = Json.obj ("필드"-> 100) 를 항상 새로운 JsObject를 생성해야합니까? –

+2

예. 'play.api.libs.json ...'객체가 변경 불가능합니다 – serejja

답변

9

예, "+"방법을 사용하여 새 필드를 추가 할 수 있습니다. 객체는 불변이다, 그래서 이것은 추가 된 필드와의 JSObject의 새 복사본을 생성합니다 참고 :

val obj = Json.obj() 
// obj - {} 
val newObj = obj + ("name" -> JsString("Kip")) 
// newObj - {"name":"Kip"} 
+0

JsObject + 의 소스를보고 나면 유혹에 빠질 수 있습니다. newObj = obj + ("name", JsString ("Kip")) 그러나 컴파일러 옵션에서 -Xlint를 실행하면 다음과 같은 경고 메시지가 나타납니다. 2-tuple을 작성하여 인수 목록을 수정하십시오. 원하는 인수가 아닐 수 있습니다. –