Używam Play! Scala 2.2 i mam problem renderować class
w Json
:Play Scala: pisarz json dla klas zagnieżdżonych
Mam dwie klasy z jednym zależnie od siebie, jak następuje:
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])
i ich ukrytych scenariusz:
implicit val artistWrites: Writes[Artist] = Json.writes[Artist]
implicit val trackWrites: Writes[Track] = Json.writes[Track]
Pisarze pracują dobrze, wykonując następujące czynności:
println(Json.toJson(Track("aaa", "aaa", Some("aaa"))))
println(Json.toJson(Artist("aaa", "aaa", List("aaa"), "aaa", List())))
tj. Jeśli Artist
ma pustylist of tracks
. Ale jeśli chcę to zrobić:
println(Json.toJson(Artist("aaa", "aaa", List("aaa"), "aaa", List(SoundCloudTrack("ljkjk", "ljklkj", Some("lkjljk"))))))
Dostaję execution exception
: [NullPointerException: null]
Czy możesz wyjaśnić mi, co robię źle? Thanks;)
Nie wiedziałem o tym! Dzięki;) – Simon
Łatwo wpaść w tę pułapkę, ponieważ kompilator nie wysyła żadnych ostrzeżeń na ten temat. Prawdopodobnie 99% NPE, które dostaję w Scali, pojawia się od problemów z kolejnością inicjalizacji. –