Ich habe einen Anwendungsfall, in dem ich Nullwerte, aber nicht fehlende Eigenschaften akzeptieren muss. Dies ist auf Play-Framework 2.1.3Spielen Scala Json Missing Property vs Null
Zum Beispiel:
case class Foo(a: Option[String], b: Option[String], c: Option[String])
Dieser Fall Klasse Teil einer größeren Fallklasse könnte
Ich mag würde folgend und erzeugen das foo-Objekt akzeptieren :
{
"foo" : {
"a" : "blah",
"b" : null,
"c" : "blah"
}
}
Aber nicht dies:
{
"foo" : {
"a" : "blah",
"c" : "blah"
}
}
Derzeit ist die folgende, um die JSON in dem Fall, Klasse habe ich gelesen habe:
val FooReader = (
(__ \ "a").readNullable[Setting] and
(__ \ "b").readNullable[String] and
(__ \ "c").readNullable[String])(Foo)
Wie kann ich FooReader erzeugen JsError auf fehlende Eigenschaft machen, aber null zulassen?
funktioniert perfekt für mich. 'val FooReader = ( (__ \ "a") lesen (Reads.optionNoError [String]) und (__ \ "b"). read (Reads.optionNoError [String]) und (__ \ "c"). read (Reads.optionNoError [String]) ) (Foo) ' –
Ja, es funktioniert jetzt für mich:) Ich denke, dass es verwirrt wurde, wenn ich Foo innerhalb des Begleitobjekts Foo bauen wollte. Es funktioniert, wenn ich die Anwendung explizit –
Ich habe einen Anwendungsfall, wo ein JSON möglicherweise nicht alle Felder im ursprünglichen Objekt enthalten, und einige Zeichenfolge Felder, die 'null' sein kann, die validieren sowie die ursprünglichen obejct Felder festlegen soll Null. Es scheint keinen direkten Weg zu geben, dies zu tun. – Ashesh