Wpis z mikrobloga

#programowanie #json #java #peonpyta

bardzo laicki problem here ( ͡° ͜ʖ ͡°) chcę zrobić prostą apkę z wykorzystaniem api z fixer.io i jako, że nigdy wcześniej się tym nie bawiłem, to teraz mam problem. (program robię w android studio, ale nie będę wrzucał całego kodu. tylko ten z jsonem)

http://pastebin.com/u7MJhS7N

jak z


zrobić tabelę floatową? albo chociaż jak wyciągnąć daną wartość (np. dla PLN)?
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ja to bym zmapował na klasę używając GSON'a a nie operując na stringach, jak ty.
Pamiętaj też, że w wątku głòwnym nie można wykonywać synchronicznych operacji łączenia sie z internetem.
  • Odpowiedz
@wczoraj: jestem głupi i nie wiem jak XD String s = jsonObject.get("rates").get("PLN").toString() nie działa.

@elloMadafaka: znalazłem w sieci sposób na nadanie sobie prawa do używania sieci w głównym wątku. trzeba dodać 2-3 linijki do kodu
  • Odpowiedz
@peon125: również bym użył czegoś do mapowania, w zasadzie to bym użył tutaj Retrofita do zapytań i GSON. Jeśli będziesz operował na pieniądzach to lepiej użyć BigDecimal niż float, nie padniesz ofiarą zaokrągleń ;) No i mimo wszystko lepiej robić operacje sieciowe chociażby w AsyncTasku chyba, że wybierzesz retrofita to ten problem będziesz miał z głowy
  • Odpowiedz
@peon125: używanie zapytań do API w głównym wątku to jest ZŁY pomysł i żadne tłumaczenie go nie usprawiedliwi. zrób to przyzwoicie w osobnym wątku. nawet jeśli to jest prosta appka, żeby się czegokolwiek nauczyć. ucz się porządnie ;)

@javarzi: samo użycie retrofita magicznie nie przeniesie wywołań do osobnego wątku.

@peon125: odnośnie samego problemu. użyj Retrofit + GSON. stwórz model danych który przyjmuje Map.
nie ma sensu
  • Odpowiedz
@peon125: tak jak koledzy wyżej - rozdziel program na dane klasy, użyj oddzielnego wątku do parsowania (ja korzystałem z GSONa, ale to tak właściwie bez różnicy czego użyjesz) i zrób jakiś CLI program z tym np. podajesz w terminalu PLN/USD i ci wyswietla rate. Potem możesz dopisać testy jednostkowe, żebyś poznał JUnita i np, Mockito do mockowania klasy parsującej itd.
  • Odpowiedz