/ / Scala play! 2 vytvorte formátovač Json pre triedu v externej knižnici - json, scala, playframework

Scala play! 2 Vytvorte Json formátovač pre triedu vo vonkajšej knižnici - json, scala, playframework

používam https://github.com/DanielaSfregola/twitter4s a musím si prečítať a analyzovať triedu User poskytnutú twitter4s v Json.

Takže som sa pokúsil vytvoriť nasledujúci serializátor:

object User {
implicit val twitterUser: OFormat[User] = Json.format[User]
}

ale tento návrat No unapply or unapplySeq function found

Ako môžem vytvoriť správny serializátor pre túto externú triedu?

odpovede:

2 pre odpoveď č. 1

Váš problém je to User má veľa polí (konkrétne viac ako 22). V systéme Scala 2.10 došlo k obmedzeniu počtu polí pre triedu prípadov. To zmizlo v 2.11, ale nie v Json.format makro Play !, pretože pokračujú v podpore pre 2.10.

Môžete však použiť Json Extra, ktoré majú inú implementáciu pre makra a umožňujú prejsť ďalej ako 22 polí.

Ak sa vám to nepáči (makro má určité obmedzenia, napríklad nie je výstupom súboru OFormat), môžete tiež rozdeliť User triedy v dvoch (alebo viacerých) triedach s menej ako 22 políčkami a z nich zostaviť počiatočnú s jednoduchšou (a bezpečnejšou) implementáciou pre Format že to, čo by si musel urobiť, keby si to celé urobil ručne.

Môžete tiež čítať táto otázka, pre ďalšie vysvetlenie.