Анализ строки json с использованием настройки значения jaxson root - PullRequest
0 голосов
/ 31 марта 2020

У меня есть огромная строка JSON в ответ на вызов покоя. Часть ответа имеет следующую структуру. Я использую com.faster xml .jackson

“historicalData”: {
     “1585573790000”: {“score”:23.54, “count”:3},
     “1585487390000”: {“score”:12.65, “count”:2}
    },
//1585573790000 -> being the epoch time

Модель, о которой я до сих пор думал, это ArrayList


private class HistoricalData {
        Long epochTime;
        Double score;
        Longcount;

    }

Но я не могу отобразить время эпохи.

1 Ответ

1 голос
/ 31 марта 2020

ваш класс HistoricalData не соответствует структуре JSON. Вы можете использовать Map для соответствия JSON.

Map<Long, HistoryData> historicalData;

Тогда класс HistoryData будет выглядеть так:

class HistoryData {
    private Double score;
    private Long count;

    // getters & setters
}

Тогда вы можете обработать карту следующим образом :

historicalData.entrySet().forEach(entry -> {
    // do something with the entry
    // entry.getKey() would return the epochTime
    // entry.getValue() would return the HistoryData object
});

Но, если честно, было бы лучше, если бы вы могли изменить структуру JSON на:

"historicalData": [
  { "epochTime": "1585573790000", “score”:23.54, “count”:3},
  { "epochTime": "1585487390000", “score”:12.65, “count”:2}
]

Тогда вы могли бы использовать List класса HistoricalData:

private List<HistoricalData> historicalData;

И класс будет выглядеть так:

public class HistoricalData {
    private Long epochTime;
    private Double score;
    private Long count;

    // getters & setters
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...