Jak reprezentować opcjonalne pola w sprayu-json?
Na moich prośbach mam opcjonalne pole:
case class SearchRequest(url: String, nextAt: Option[Date])
Mój protokół to:
object SearchRequestJsonProtocol extends DefaultJsonProtocol {
implicit val searchRequestFormat = jsonFormat(SearchRequest, "url", "nextAt")
}
Jak oznaczyć pole nextAt jako opcjonalne, tak aby następujące obiekty JSON były poprawnie odczytywane i akceptowane:
{"url":"..."}
{"url":"...", "nextAt":null}
{"url":"...", "nextAt":"2012-05-30T15:23Z"}
Naprawdę nie obchodzi mnie przypadek zerowy, ale jeśli masz szczegóły, byłoby miło. Używam spray-json i miałem wrażenie, że użycie Opcji pominie pole, jeśli nie było go w oryginalnym obiekcie JSON.