Comment représenter les champs optionnels dans le jet-json?
J'ai un champ facultatif sur mes demandes:
case class SearchRequest(url: String, nextAt: Option[Date])
Mon protocole est:
object SearchRequestJsonProtocol extends DefaultJsonProtocol {
implicit val searchRequestFormat = jsonFormat(SearchRequest, "url", "nextAt")
}
Comment puis-je marquer le nextAt champ facultatif, tels que les objets JSON sera correctement lu et accepté:
{"url":"..."}
{"url":"...", "nextAt":null}
{"url":"...", "nextAt":"2012-05-30T15:23Z"}
En fait, je ne pas vraiment se soucier de la valeur null, mais si vous avez des détails, ce serait sympa. Je suis l'aide de la pulvérisation en json, et avait l'impression que l'utilisation d'une Option serait de sauter sur le terrain si il était absent sur l'original de l'objet JSON.
OriginalL'auteur François Beausoleil | 2012-05-30
Vous devez vous connecter pour publier un commentaire.
Vous devrez créer un format explicite (avertissement: psuedocodish):
OriginalL'auteur James Marble
Fonctionne pour moi (spray-json 1.1.1 scala 2.9.1)
fonctionne pour moi aussi, ignorer les autres de réponse et de mise à niveau.
OriginalL'auteur elbowich
Utilisation
NullOptions
trait à désactiver sauternull
s:https://github.com/spray/spray-json#nulloptions
Exemple:
https://github.com/spray/spray-json/blob/master/src/test/scala/spray/json/ProductFormatsSpec.scala
OriginalL'auteur Alex Abdugafarov
Ne sais pas si cela va vous aider, mais vous pouvez donner ce champ une valeur par défaut dans le cas de la définition de classe, de sorte que si le champ n'est pas dans le json, il va affecter la valeur par défaut.
OriginalL'auteur Mohammad Qandeel
Facile.
OriginalL'auteur Dmitry Kaltovich