/ / Scala play! 2 utwórz formatator Json dla klasy w bibliotece zewnętrznej - json, scala, playframework

Scala play! 2 utwórz program formatujący Json dla klasy w zewnętrznej bibliotece - json, scala, playframework

używam https://github.com/DanielaSfregola/twitter4s i muszę przeczytać i parsować klasę User dostarczoną przez twitter4s w Json.

Próbowałem więc utworzyć następujący serializator:

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

ale ten powrót No unapply or unapplySeq function found

Jak mogę utworzyć poprawny serializator dla tej klasy zewnętrznej?

Odpowiedzi:

2 dla odpowiedzi № 1

Twój problem polega na tym User ma wiele pól (czyli ponad 22). W scala 2.10 istniało ograniczenie liczby pól dla klasy przypadków. Zniknęło to w 2.11, ale nie w Json.format makro Play !, ponieważ nadal obsługują 2.10.

Możesz jednak użyć Json Extra, które mają inną implementację makr i pozwalają przejść dalej niż 22 pola.

Jeśli ci się nie podoba (makro ma pewne ograniczenia, takie jak brak wypisywania an OFormat), możesz także podzielić User klasy w dwóch (lub więcej) klasach z mniej niż 22 polami i zbuduj początkową z nich za pomocą prostszej (i bezpieczniejszej) implementacji Format to musielibyście zrobić, gdybyście zrobili wszystko ręcznie.

Możesz także przeczytać to pytanie, w celu uzyskania dalszych wyjaśnień.