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ď č. 1Váš 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.