Ho un problema con l'aggiunta di un campo per oggetto JSON in Play Framework utilizzando Scala:quadro Gioco - aggiungere un campo per JSON oggetto
Ho una classe cassa che contiene i dati. Per esempio:
case class ClassA(a:Int,b:Int)
e sono in grado di creare un oggetto JSON utilizzando JSON scrive:
val classAObject = ClassA(1,2)
implicit val classAWrites= Json.writes[ClassA]
val jsonObject = Json.toJson(classAObject)
e JSON sarà simile:
{ a:1, b:2 }
Supponiamo vorrei aggiungi un ulteriore campo "c" all'oggetto Json. Risultato:
{ a:1, b:2, c:3 }
Come faccio a farlo senza creare una nuova classe caso o la creazione di mia JSON oggetto me stesso usando Json.obj? Sto cercando qualcosa come:
jsonObject.merge({c:3})
Qualsiasi aiuto apprezzato!
Per la firma, 'Scrive. writes' restituisce 'JsValue', quindi non capisco come si possa sbarazzarsi di upcasting (non in REPL). – Tvaroh
Tvaroh ha ragione, restituisce JsValue per quello che posso vedere – elmalto
@elmalto Provalo-'classAWrites' verrà staticamente digitato come 'OWrites [ClassA]' (sia in Play 2.2 che in 2.3 e in 2.10 e 2.11). Ciò è dovuto al comportamento "sottodecificato ma previsto" delle macro di Scala (vedere la mia domanda [qui] (http: // StackOverflow.it/q/13669974/334519) per i dettagli). –