Mam problem z dodaniem pola do obiektu JSON w grze Framework za pomocą Scala:play Framework - dodać pole do JSON obiektu
Mam klasy obudowy zawierającej dane. Na przykład:
case class ClassA(a:Int,b:Int)
i jestem w stanie utworzyć obiekt JSON za pomocą JSON pisze:
val classAObject = ClassA(1,2)
implicit val classAWrites= Json.writes[ClassA]
val jsonObject = Json.toJson(classAObject)
i JSON wyglądałby następująco:
{ a:1, b:2 }
Załóżmy, chciałbym dodaj dodatkowe pole "c" do obiektu Json. Rezultat:
{ a:1, b:2, c:3 }
Jak to zrobić, bez tworzenia nowej klasy przypadków lub tworzenia własnego obiektu Json za pomocą Json.obj? Szukam czegoś takiego:
jsonObject.merge({c:3})
Każda pomoc doceniona!
Per podpisu, 'pisze. write' zwraca 'JsValue', więc nie rozumiem, jak możesz się pozbyć upcastingu (nie w REPL). – Tvaroh
Tvaroh ma rację, zwraca JsValue tak daleko, jak widzę. – elmalto
@elmalto Wypróbuj - -classAWrites' będzie statycznie wpisane jako 'OWrites [ClassA]' (zarówno w wersji 2.2 i 2.3, jak i 2.10 i 2.11). Wynika to z "niedookreślonego, ale zamierzonego" zachowania makr Scali (zobacz moje pytanie [tutaj] (http: // stackoverflow.com/q/13669974/334519) w celu uzyskania szczegółowych informacji). –