Как создать POJO для ответа JSON, состоящего из упорядоченной пары с датой и данными? - PullRequest
0 голосов
/ 09 марта 2019

Вот как выглядит мой JSON:

{
   "Meta Data":{
      "1: Symbol":"MSFT",
      "2: Indicator":"Moving Average Convergence/Divergence (MACD)",
      "3: Last Refreshed":"2019-03-08",
      "4: Interval":"daily",
      "5.1: Fast Period":12,
      "5.2: Slow Period":26,
      "5.3: Signal Period":9,
      "6: Series Type":"open",
      "7: Time Zone":"US/Eastern"
   },
   "Technical Analysis: MACD":{
      "2019-03-08":{
         "MACD":"1.5751",
         "MACD_Signal":"1.6779",
         "MACD_Hist":"-0.1028"
      },
      "2019-03-07":{
         "MACD":"1.8551",
         "MACD_Signal":"1.7036",
         "MACD_Hist":"0.1515"
      },
      "2019-03-06":{
         "MACD":"1.9574",
         "MACD_Signal":"1.6657",
         "MACD_Hist":"0.2918"
      }
   }
}

Я попытался сгенерировать POJO с помощью онлайн-инструментов, однако он генерирует разные POJO для каждой информации.Так как мои данные могут иметь сотню дат.Мне нужна общая настройка POJO, которая позволила бы мне хранить эти данные с датами, например, массивом 2D или HashMap.

Редактировать: я разрабатываю приложение Android с использованиемRetrofit, Gson.

1 Ответ

0 голосов
/ 09 марта 2019

Когда ключи зафиксированы (например, "Meta Data", "MACD", ...), вы сопоставляете объект JSON с классом POJO.

Когда ключи являются динамическими (например, "1: Symbol", "2019-03-08", ...), вы сопоставляете объект JSON с Map.

например. при использовании Gson :

class Root {
    @SerializedName("Meta Data")
    Map<String, String> metaData;

    @SerializedName("Technical Analysis: MACD")
    Map<String, Analysis> analysis;
}

class Analysis {
    @SerializedName("MACD")
    String macd;

    @SerializedName("MACD_Signal")
    String macdSignal;

    @SerializedName("MACD_Hist")
    String macdHist;
}
...