Mam przypadek użycia, w którym muszę zaakceptować wartości null, ale nie brakujące właściwości. Jest w Play Framework 2.1.3Zagraj w Scala Json Missing Property vs Null
Na przykład:
case class Foo(a: Option[String], b: Option[String], c: Option[String])
Klasa ta sprawa może być częścią większej klasie przypadku
chciałbym przyjąć następujące i wygenerować obiekt foo :
{
"foo" : {
"a" : "blah",
"b" : null,
"c" : "blah"
}
}
Ale nie to:
{
"foo" : {
"a" : "blah",
"c" : "blah"
}
}
Obecnie mam następujący czytać JSON do klasy obudowy:
val FooReader = (
(__ \ "a").readNullable[Setting] and
(__ \ "b").readNullable[String] and
(__ \ "c").readNullable[String])(Foo)
Jak mogę dokonać FooReader generować JsError na brak właściwości, ale pozwalają NULL?
działa idealnie dla mnie. 'val FooReader = ( (__ \ "a"), read (Reads.optionNoError [String]) i (__ \ "b"). read (Reads.optionNoError [String]) i (__ \ "c"). read (Reads.optionNoError [String]) ) (Foo) ' –
Tak, teraz to działa dla mnie:) Myślę, że to pomieszało kiedy próbowałem zbudować Foo wewnątrz obiektu towarzyszącego Foo. Działa, gdy ustawiam jawnie aplikację –
Mam przypadek użycia, w którym json może nie zawierać wszystkich pól obecnych w oryginalnym obiekcie, a niektóre pola łańcuchowe mogą mieć wartość "null", które powinny sprawdzać poprawność oraz ustawić pola oryginalnego obejścia zero. Nie wydaje się, że jest to bezpośredni sposób. – Ashesh