Ho un caso d'uso in cui devo accettare valori nulli, ma non le proprietà mancanti. Questo è su Play Framework 2.1.3Riproduci Scala Json Missing Property vs Null
Ad esempio:
case class Foo(a: Option[String], b: Option[String], c: Option[String])
Questa classe caso potrebbe essere parte di una classe di cassa più grande
Vorrei accettare la seguente e generare l'oggetto foo :
{
"foo" : {
"a" : "blah",
"b" : null,
"c" : "blah"
}
}
Ma non questa:
{
"foo" : {
"a" : "blah",
"c" : "blah"
}
}
Attualmente ho il seguente per leggere il JSON nella classe caso:
val FooReader = (
(__ \ "a").readNullable[Setting] and
(__ \ "b").readNullable[String] and
(__ \ "c").readNullable[String])(Foo)
Come posso fare FooReader generare JsError sulla mancante proprietà, ma consentono nulla?
funziona perfettamente per me con:. 'val FooReader = ( (__ \ "a") leggere (Reads.optionNoError [String]) e (__ \ "b"). read (Reads.optionNoError [String]) e (__ \ "c"). read (Reads.optionNoError [String]) ) (Foo) –
Sì, ora funziona per me:) Penso che sia confuso quando provo a costruire Foo all'interno dell'oggetto compagno Foo. Funziona quando imposto esplicitamente l'applicazione –
Ho un caso d'uso in cui un json potrebbe non contenere tutti i campi presenti nell'oggetto originale, e alcuni campi stringa che possono essere 'null' che dovrebbero validare così come impostare i campi obejct originali per nullo. Non sembra essere un modo diretto per farlo. – Ashesh