¿Cómo representar campos opcionales en spray-json?
Tengo un campo opcional en mis solicitudes:
case class SearchRequest(url: String, nextAt: Option[Date])
Mi protocolo es:
object SearchRequestJsonProtocol extends DefaultJsonProtocol {
implicit val searchRequestFormat = jsonFormat(SearchRequest, "url", "nextAt")
}
¿Cómo se marca el campo nextAt opcional, de manera que los siguientes objetos JSON se lean y acepten correctamente?
{"url":"..."}
{"url":"...", "nextAt":null}
{"url":"...", "nextAt":"2012-05-30T15:23Z"}
En realidad no me importa el caso nulo, pero si tiene detalles, sería bueno. Estoy usando spray-json, y tuve la impresión de que usar una opción omitiría el campo si no estuviera en el objeto JSON original.