Próbuję przenieść aplikację Rails/Mongodb do wersji 2.3 przy użyciu play-reactivemongo i reactivemongo-extensions. Podczas modelowania moich danych napotykam problem polegający na serializacji i deserializacji mapy [Int, Boolean].Odtwórz formatowanie JSON dla mapy [Int, _]
Kiedy próbuję definiować moje formatów poprzez makro jak tak
implicit val myCaseClass = Json.format[MyCaseClass]
gdzie MyCaseClass ma kilka pól smyczkowe, pole BSONObjectID i mapy [Int, Boolean] Pole kompilator narzeka:
No Json serializer found for type Map[Int,Boolean]. Try to implement an implicit Writes or Format for this type.
No Json deserializer found for type Map[Int,Boolean]. Try to implement an implicit Reads or Format for this type.
Patrząc na kod źródłowy do odtwarzania w Reads.scala Widzę zdefiniowany Reads dla mapy [String, _], ale brak dla mapy [Int, _].
Czy jest jakiś powód, dla którego Play ma domyślne Odczyt/Zapis dla map ciągów, ale nie dla innych prostych typów?
Nie w pełni rozumiem mapę [Ciąg, _] zdefiniowaną przez grę, ponieważ jestem dość nowa w scala. Jak mam to przetłumaczyć na Mapę [Int, _]? Jeśli nie jest to możliwe z jakiegoś technicznego punktu widzenia, jak zdefiniowałbym Czytanie/Zapis dla mapy [Int, Boolean]?
Gdybym przestał myśleć przez chwilę, zrozumiałbym, że już wiedziałem o tym haha. Przez chwilę jestem gęsty, przepraszam.Niezależnie od tego, czy można zdefiniować Odczyt/Zapis tak, że obiekt scala będzie miał Mapę [Int, Boolean], ale napisze obiekt JSON za pomocą kluczy łańcuchowych? Zasadniczo przeanalizuj liczby całkowite ze wszystkich kluczy JSON, aby utworzyć mapę [Int, _]? – imagio
Proponuję wrócić i poprawić swoje pytanie. Mamy nadzieję, że ktoś inny (kto wie, lepiej zagrać) odpowie. –