Сложная структура JSON'a (Jackson/Gson)

111
10 июня 2021, 17:00
{
    "status": "success",
    "data": {
        "CDF DTF LEND": {
            "exchange": {
                "ADD": {
                    "available": "187.48200395",
                    "on_orders": 0,
                    "total": "187.48200395"
                },
                "ATD": {
                    "available": "374.9640079",
                    "on_orders": 0,
                    "total": "374.9640079"
                },
                "BAT": {
                    "available": "280.0",
                    "on_orders": 0,
                    "total": "280.0"
                },
                "DATA": {
                    "available": "2087.18101525",
                    "on_orders": 0,
                    "total": "2087.18101525"
                },
                "FUN": {
                    "available": "1300.0",
                    "on_orders": 0,
                    "total": "1300.0"
                },
                "GNT": {
                    "available": "199.6",
                    "on_orders": 0,
                    "total": "199.6"
                },
                "IOST": {
                    "available": "998.0",
                    "on_orders": 0,
                    "total": "998.0"
                },
                "IQ": {
                    "available": "1874.82003949",
                    "on_orders": 0,
                    "total": "1874.82003949"
                },
                "MTO": {
                    "available": "187.48200395",
                    "on_orders": 0,
                    "total": "187.48200395"
                },
                "QASH": {
                    "available": "150.0",
                    "on_orders": 0,
                    "total": "150.0"
                },
                "SNT": {
                    "available": "500.0",
                    "on_orders": 0,
                    "total": "500.0"
                },
                "SPANK": {
                    "available": "500.0",
                    "on_orders": 0,
                    "total": "500.0"
                }
            },
            "margin": [],
            "lending": {
                "BTC": {
                    "available": "0.0",
                    "on_orders": 0.30487882,
                    "total": "0.30487882"
                },
                "DASH": {
                    "available": "0.0000728",
                    "on_orders": 0.9308239700000001,
                    "total": "0.93089677"
                },
                "EOS": {
                    "available": "1.24817321",
                    "on_orders": 356.95649684,
                    "total": "358.20467005"
                },
                "ETH": {
                    "available": "0.19111776",
                    "on_orders": 4.50486697,
                    "total": "4.69598473"
                },
                "LTC": {
                    "available": "0.00099792",
                    "on_orders": 2.74854127,
                    "total": "2.74953919"
                },
                "SAN": {
                    "available": "308.38790821",
                    "on_orders": 0,
                    "total": "308.38790821"
                },
                "USD": {
                    "available": "0.05001825",
                    "on_orders": 0,
                    "total": "0.05001825"
                },
                "XRP": {
                    "available": "0.20936246",
                    "on_orders": 4013.3975434,
                    "total": "4013.60690586"
                }
            },
            "total": {
                "BTC": "0.30487882",
                "DASH": "0.93089677",
                "EOS": "358.20467005",
                "ETH": "4.69598473",
                "LTC": "2.74953919",
                "SAN": "308.38790821",
                "USD": "0.05001825",
                "XRP": "4013.60690586",
                "ADD": "187.48200395",
                "ATD": "374.9640079",
                "BAT": "280.0",
                "DATA": "2087.18101525",
                "FUN": "1300.0",
                "GNT": "199.6",
                "IOST": "998.0",
                "IQ": "1874.82003949",
                "MTO": "187.48200395",
                "QASH": "150.0",
                "SNT": "500.0",
                "SPANK": "500.0"
            }
        },
        "CDF POLO LEND": {
            "exchange": {
                "DASH": {
                    "available": 0.17670156,
                    "on_orders": 0,
                    "total": 0.17670156
                },
                "STEEM": {
                    "available": 284.45507303,
                    "on_orders": 0,
                    "total": 284.45507303
                },
                "XLM": {
                    "available": null,
                    "on_orders": 0,
                    "total": null
                },
                "ZEC": {
                    "available": 0.01084475,
                    "on_orders": 0,
                    "total": 0.01084475
                }
            },
            "margin": [],
            "lending": {
                "XMR": {
                    "available": 3.0e-8,
                    "on_orders": 1.4066121400000002,
                    "total": 1.4066121700000003
                },
                "BTC": {
                    "available": 0,
                    "on_orders": 0.00889535,
                    "total": 0.00889535
                },
                "ETH": {
                    "available": 0,
                    "on_orders": 1.3655356700000003,
                    "total": 1.3655356700000003
                }
            },
            "total": {
                "DASH": 0.17670156,
                "STEEM": 284.45507303,
                "XLM": null,
                "ZEC": 0.01084475,
                "XMR": 1.4066122000000003,
                "BTC": 0.00889535,
                "ETH": 1.3655356700000003
            }
        },
        "FER POLO LEND": {
            "exchange": {
                "DASH": {
                    "available": 0.14281702,
                    "on_orders": 0,
                    "total": 0.14281702
                },
                "ETC": {
                    "available": 0.57225742,
                    "on_orders": 0,
                    "total": 0.57225742
                },
                "LTC": {
                    "available": 0.00427138,
                    "on_orders": 0,
                    "total": 0.00427138
                },
                "STEEM": {
                    "available": 540.87788874,
                    "on_orders": 0,
                    "total": 540.87788874
                },
                "XLM": {
                    "available": null,
                    "on_orders": 0,
                    "total": null
                },
                "USDT": {
                    "available": 0.05806621,
                    "on_orders": 0,
                    "total": 0.05806621
                }
            },
            "margin": [],
            "lending": {
                "ETC": {
                    "available": 2.31275079,
                    "on_orders": 12.47315626,
                    "total": 14.785907049999999
                },
                "XMR": {
                    "available": 0.0152614,
                    "on_orders": 1.17724458,
                    "total": 1.19250598
                },
                "BTC": {
                    "available": 0,
                    "on_orders": 1.337967379999994,
                    "total": 1.337967379999994
                },
                "ETH": {
                    "available": 0,
                    "on_orders": 0.67440571,
                    "total": 0.67440571
                }
            },
            "total": {
                "DASH": 0.14281702,
                "ETC": 17.670915259999997,
                "LTC": 0.00427138,
                "STEEM": 540.87788874,
                "XLM": null,
                "USDT": 0.05806621,
                "XMR": 1.20776738,
                "BTC": 1.337967379999994,
                "ETH": 0.67440571
            }
        }
    } }

CDF DTF LEND, CDF POLO LEND, FER POLO LEND - название аккаунтов

Есть у меня такой вот json. Хочу использовать библиотеки Jackson либо Gson. Просмотрел кучу разных сайтов с примера и не нашел подобной структуры. Знаю, что нужно разбирать его через POJO, но конструкторы POJO создают под отдельное название акаунта отдельный класс. Мне нужно, чтобы я мог по ключу – название акаунта – выбирать какой из них мне распарасить. Помогите пожалуйста

Answer 1

Вот пример без использования pojo

public static void main(String[] args) throws FileNotFoundException {
        Gson gson = new Gson();
        LinkedTreeMap obj = gson.fromJson(new FileReader(pathToFile), LinkedTreeMap.class);
        LinkedTreeMap data = (LinkedTreeMap) obj.get("data");
        LinkedTreeMap cdf_dtf_lend = (LinkedTreeMap) data.get("CDF DTF LEND");
        log.info("data: {}", data);
        log.info("CDF DTF LEND: {}", cdf_dtf_lend);
    }
READ ALSO
Задача на создание игры РПГ

Задача на создание игры РПГ

Герой игры обладает никнеймом, силой, ловкостью и интеллектом, помимо этого у него есть здоровье, мана и опыт и позиция на карте в координатах...

488
HashMap и чтение из файла

HashMap и чтение из файла

Написать программу в которой можно из консоли делать текстовые записи в файл (с помощью Scanner) в кодировке "cp1251"

159
Реестр и параметры Java

Реестр и параметры Java

Ребят, подскажите, где в реестре лежат значения Java ? Например, выделенная в данный момент память для Jav'ыили любой другой путь, где лежит конфиг...

146
Как внедрить версию библиотеки из другой ветки в maven?

Как внедрить версию библиотеки из другой ветки в maven?

Есть большой проект, в него подтягиваются библиотеки с gitlab к которым у меня есть доступМне нужно поменять некоторые методы в этих библиотеках...

212