• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Parsowanie Jsona do POJO.

0 głosów
828 wizyt
pytanie zadane 16 czerwca 2018 w Java przez Aisekai Nałogowiec (42,190 p.)
zamknięte 16 czerwca 2018 przez Aisekai

Szukałem na stackoverflow ale nie znalazłem. Jak sparsować Stringa reprezentującego Jsona do POJO? Json wygląda mniej więcej tak (różni się tylko ilością obiektów): 

{
    "data": {
       "2092": {
            "id": 2092, 
            "name": "Nuls", 
            "symbol": "NULS", 
            "website_slug": "nuls", 
            "rank": 99, 
            "circulating_supply": 40000000.0, 
            "total_supply": 40000000.0, 
            "max_supply": null, 
            "quotes": {
                "USD": {
                    "price": 2.55135, 
                    "volume_24h": 1610090.0, 
                    "market_cap": 102054000.0, 
                    "percent_change_1h": -0.48, 
                    "percent_change_24h": -4.78, 
                    "percent_change_7d": -28.92
                }
            }, 
            "last_updated": 1529177670
        }, 
        "1414": {
            "id": 1414, 
            "name": "ZCoin", 
            "symbol": "XZC", 
            "website_slug": "zcoin", 
            "rank": 100, 
            "circulating_supply": 4979292.0, 
            "total_supply": 4979292.0, 
            "max_supply": 21400000.0, 
            "quotes": {
                "USD": {
                    "price": 19.9931, 
                    "volume_24h": 945881.0, 
                    "market_cap": 99551482.0, 
                    "percent_change_1h": 0.71, 
                    "percent_change_24h": -1.3, 
                    "percent_change_7d": -28.81
                }
            }, 
            "last_updated": 1529177654
        }
    }, 
    "metadata": {
        "timestamp": 1529177595, 
        "num_cryptocurrencies": 1629, 
        "error": null
    }
}

Link do repozytorium: https://github.com/KamLar/Crypto-app

Błąd jaki dostaję to:

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of CryptoCurrency[] out of START_OBJECT token
 at [Source: java.io.StringReader@cb0755b; line: 2, column: 5] (through reference chain: .CryptoList["data"])

Spróbowałem opakować najpierw Listę<CryptoCurrency>, a potem zmieniłem na zwykłą tablicę, w jakąś klasę - nie pomogło. Wiem, że jest problem z parsowaniem Listy (albo Array) jsona w obiekty CryptoCurrency.

komentarz zamknięcia: Rozwiązane.
komentarz 16 czerwca 2018 przez Aisekai Nałogowiec (42,190 p.)
Zadziałał sposób z tablicą, przy czym musiałem Jsona zmodyfikować o wywalenie:

- {  "data":

-usunięcie wszystkiego począwszy od ,"metadata":

-zastąpienie pierwszego nawiasu '{' nawiasem '['

-usunięcie wszystkich nazw obiektów np "1414":.

Dzięki wielkie :)
komentarz 17 czerwca 2018 przez mbabane Szeryf (79,260 p.)

No tak, bo tablice w JSON przedstawia się przy pomocy kwadratowych nawiasów:

{
"name":"John",
"age":30,
"cars":[ "Ford", "BMW", "Fiat" ]
}

a jeśli tablica jest tablica obiektów to tak:

{
 "Nissan": [
            {"model":"Sentra", "doors":4},
            {"model":"Maxima", "doors":4},
            {"model":"Skyline", "doors":2}
        ]
}
komentarz 17 czerwca 2018 przez Aisekai Nałogowiec (42,190 p.)
Czy dałoby radę, mojego przykładowego Jsona sparsować, nie usuwając nazw obiektów? Jeśli tak, to zastanawia mnie jak to zrobić?
komentarz 17 czerwca 2018 przez Aisekai Nałogowiec (42,190 p.)
Znalazłem już jak to zrobić. Jeszcze raz dzięki :)
komentarz 17 czerwca 2018 przez mbabane Szeryf (79,260 p.)
To dobrze, bo nawet nie wiem co miałeś na myśli ;)
komentarz 18 czerwca 2018 przez Aisekai Nałogowiec (42,190 p.)
Chodziło mi o to, że w ustawieniach tego jsona miałem, żeby pobrał go jako dictionary, zamiast array, gdzie każdy z obiektów miał jakąś konkretną nazwę,. I musiałem to przerobić tak, aby usunąć te nazwy obiektów.

Podobne pytania

0 głosów
0 odpowiedzi 202 wizyt
pytanie zadane 3 listopada 2019 w JavaScript przez BorkBork Początkujący (290 p.)
+1 głos
3 odpowiedzi 373 wizyt
pytanie zadane 30 kwietnia 2018 w Java przez Adrian Paź Obywatel (1,270 p.)
0 głosów
0 odpowiedzi 215 wizyt
pytanie zadane 26 października 2020 w Inne języki przez Lyokoheros Początkujący (340 p.)

93,736 zapytań

142,672 odpowiedzi

323,295 komentarzy

63,299 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...