Как обработать уникальный идентификатор Dynami c в объекте JSON? - PullRequest
0 голосов
/ 15 апреля 2020

Я новичок в обработке json и использую модификацию для запроса API. Это JSON, который я получаю от API. Идентификатор "f9dcf2ef-8647-46c1-b1 cc -7e2bb6c3caa2" меняется каждый раз, когда я меняю имя пользователя с URL https://r6.apitab.com/search/uplay/ {username}.

 {
  "status": 200,
  "foundmatch": true,
  "requested": "iishiro_o",
  "players": {
    "f9dcf2ef-8647-46c1-b1cc-7e2bb6c3caa2": {
      "profile": {
        "p_name": "IIShiro_o",
        "p_user": "f9dcf2ef-8647-46c1-b1cc-7e2bb6c3caa2",
        "p_platform": "uplay",
        "verified": false
      },
      "refresh": {
        "x": 0,
        "s": 0
      },
      "stats": {
        "level": 127
      },
      "ranked": {
        "kd": 1.27,
        "mmr": 2820,
        "rank": 15,
        "champ": 0,
        "NA_mmr": 0,
        "NA_rank": 0,
        "NA_champ": 0,
        "EU_mmr": 0,
        "EU_rank": 0,
        "EU_champ": 0,
        "AS_mmr": 2820,
        "AS_rank": 0,
        "AS_champ": 0
      }
    }
  }
}

Я был используя сгенерированные классы POJO для получения моих данных, но так как идентификатор меняется динамически, и я не знаю IDS. Как я смогу запросить API для получения данных? Честно говоря, мне просто нужно получить идентификатор, чтобы я мог запросить API, чтобы получить более подробные данные через этот URL https://r6.apitab.com/player/ {ID}.

final Retrofit retrofit1 = new Retrofit.Builder()
        .baseUrl("https://r6.apitab.com/search/uplay/")
        .addConverterFactory(GsonConverterFactory.create())
        .build();

R6TabWireApi r6TabWireApi = retrofit1.create(R6TabWireApi.class);
Call<RainbowSixUser> call = r6TabWireApi.getUserId(userName);

Как выглядит мой POJO.

1 Ответ

0 голосов
/ 15 апреля 2020

Ваш Pojo для вашего примера json может выглядеть так:

class Pojo {

     // fields like status, foundmatch, etc.

     public Map<String, PlayerPojo> players;

     // other fields
}

Таким образом, вы можете просто получить доступ к pojoInst.players.values(), чтобы получить список игроков.

...