Sto usando Play! Scala 2.2 e ho un problema di rendere un class
in Json
:Riproduci Scala: json writer per classi nidificate
Ho due classi con una seconda dell'altro, come segue:
case class Artist(id: String, cover: String, website: List[String], link: String, Tracks: List[Track] = List())
case class Track(stream_url: String, title: String, artwork_url: Option[String])
E loro scrittori implicite:
implicit val artistWrites: Writes[Artist] = Json.writes[Artist]
implicit val trackWrites: Writes[Track] = Json.writes[Track]
Gli scrittori funzionano bene come segue:
println(Json.toJson(Track("aaa", "aaa", Some("aaa"))))
println(Json.toJson(Artist("aaa", "aaa", List("aaa"), "aaa", List())))
se lo Artist
ha un vuotolist of tracks
. Ma se io voglio fare questo:
println(Json.toJson(Artist("aaa", "aaa", List("aaa"), "aaa", List(SoundCloudTrack("ljkjk", "ljklkj", Some("lkjljk"))))))
ottengo una execution exception
: [NullPointerException: null]
Si può spiegare a me quello che sto facendo male? Grazie;)
Non lo sapevo! Grazie;) – Simon
È facile cadere in questa trappola perché il compilatore non emette alcun avviso a riguardo. Probabilmente il 99% degli NPE che ottengo in Scala si verificano dai problemi di ordine di inizializzazione. –