Wpis z mikrobloga

  • 1
.net Mam kilka wersji(3) jsonów, które mają różne nazwy propertek z danymi. Chcę to zdeserializować na jeden obiekt jednej klasy(dane są takie same tylko nazwy propek inne). Jakie podejście byłoby najbardziej prawidłowe?

Myślałem żeby zrobić klasę która ma settery pod różnymi nazwami i upychajacę je do jednej wersji prywatnej propki, tak żeby potem główna metoda zwracała mi interesujący mnie obiekt już z poszczególnych propek ubitych z różnych jsonów.

Coś w stylu
string C
C1 set C
C2 set C
C3 set C

Czy bardziej iść w jakiś automapper?

#programowanie #cszarp #dotnet #pytanie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 0
@JBFC: do głowy na szybko mi przychodzą dwa rozwiązania jak używasz JSON.NET:
1. Dodatkowe prywatne property w klasie którego setter ustawia właściwie property. Dodatkowe property jest opatrzone atrybutem z odpowiednią nazwa z jsona (więc masz jedno właściwie i 3 dodatkowe). Rozwiązanie jest szybkie ale ma swoje minusy.

2. Napisanie customowego deserializera. Sprawdzasz czy twoje JProperty.Name to nazwa1, nazwa2 i wkładasz e odpowiednie pole. Ładne ale wymaga minimalnej wiedzy o bibliotece
  • Odpowiedz
  • 0
@JBFC a nie lepiej zrobić 3 klasy, które odpowiadają obiektom, które przyjmujesz i potem sobie je mapować na konkretny obiekt, którego chcesz dalej używać?
  • Odpowiedz
via Android
  • 1
@Yahoo_ dostaję jedną długą paczkę jsonów i nie wiem jaką klasę reprezentują, wiem tylko że są tam pola które mnie interesują ale mogą mieć 3 różne warianty nazw propek
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@JBFC: I przez takie gówno problemy zaciemnia się kod XD. Zostawiam taktyka bo jestem ciekaw proponowanych rozwiązań.
  • Odpowiedz
@JBFC: żeby było bardziej pro, to możesz spróbować napisać jakiś kawałek kodu który rozpoznaje z którą wersją jsona ma do czynienia i za pomocą strategii wybiera odpowiedni serializer
  • Odpowiedz