• 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.

VPS Starter Arubacloud
0 głosów
435 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,280 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,280 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 90 wizyt
pytanie zadane 3 listopada 2019 w JavaScript przez BorkBork Początkujący (290 p.)
+1 głos
3 odpowiedzi 192 wizyt
pytanie zadane 30 kwietnia 2018 w Java przez Adrian Paź Obywatel (1,270 p.)
0 głosów
0 odpowiedzi 131 wizyt
pytanie zadane 26 października 2020 w Inne języki przez Lyokoheros Początkujący (340 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...