Witam Mam problem z parserem treści JSON. Mój problem jest następujący Mam klasę przypadków z niektórymi opcjonalnymi parametrami (opcja [T]) i parametrem z wartością domyślną, której nie chcę, aby został wpisany jako Opcja [T].Zagraj w domyślne pole wartości domyślnej wartości dla Scala JSON
Jednak podczas analizowania ciało JSON mający pole z wartością domyślną pominiętym pojawia się błąd
play.api.libs.JsError
/count error path missing
Oto mój kod kontrolera:
object MyController extends Controller{
implicit val itemWrites = Json.writes[Item]
implicit val itemReads = Json.reads[Item]
implicit val itemFormats = Json.format[Item]
def add = DBAction(parse.json){ implicit rs =>
val item = rs.request.body.validate[Item]
}
Oto moja klasa przypadek:
case class Item(id:Option[Int], name:String, description:Option[String], count:Int=0)
Czy mogę uzyskać takie samo zachowanie jak Opcja [T] z domyślnym polem wartości?
Dzięki
Używam:
- Scala 2,10
- play Framework 2.2.1
- Play-Slick plugin 0.5.0.8
Witam, dziękuję Wolałbym nie mieć opcji. Jeśli chodzi o podany link. Użytkownik twierdzi, że jego obecne rozwiązanie ma pewne wady i muszę powiedzieć, że się zgadzam. Jeśli jednak nie zaproponuje się lepszego rozwiązania, wykorzystam jego podejście, ponieważ nie widzę sposobu na obejście problemu. – ufasoli
Najlepsze rozwiązanie wymagałoby napisania makra, aby automatycznie utworzyć withDefault, jest to jednak przedsięwzięcie :( – Jean
Tak, to jest spory wysiłek ... – ufasoli