4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Retrofit(というかGSON)でキーが不定(数字)なJSONを受け取る

Posted at

こんなJSON

{
  "list":{
    "32295":{
      "key1":"value1",
      "key2":"value2"
    },
    "32375":{
      "key1":"value1",
      "key2":"value2"
    },
    "32391":{
      "key1":"value1",
      "key2":"value2"
    }
  }
}

32295 32375 32391 の部分がケタ数こそ決まっているものの、不定(正確には、パターン数は決まっているけど、膨大)です。
なかなか見ない形(少なくとも私は初めて見ました)だと思うのですが、一般的なのでしょうか?

結論

試行錯誤の末、以下のようなクラスで受け止めることで、正しく値を取得することができました。
よかった。よかった。

public class HogeResponse {
    public Map<Integer, Fuga> list;
}

Mapのkeyに 32295 32375 32391 が格納されます。

ちなみに

こんな形のJSONでよかった気がするのですが、何がどうなって上記のようなJSONが誕生したのでしょう。。。
気になります。。。

{
  "list":[
    {
      "key":"32295",
      "key1":"value1",
      "key2":"value2"
    },
    {
      "key":"32375",
      "key1":"value1",
      "key2":"value2"
    },
    {
      "key":"32391",
      "key1":"value1",
      "key2":"value2"
    }
  ]
}
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?