読者です 読者をやめる 読者になる 読者になる

Got Some \W+ech?

Could be Japanese. Could be English. Android, セキュリティ, 機械学習などをメインに、たまにポエムったり雑感記載したりします。

GSONでJsonSyntaxException: java.lang.IllegalStateException

下記のようなJSONをマップさせたクラスを作る必要があった。 その中の一つが、別のところで使われているものがあったので、そのまま流用したところ、タイトルのエラーがでた。

public class HogeEntity {
    ----省略----

    @SerializedName("hogehoge")
    public HogesEntity hoges;
}
public class HogesEntity {
    @SerializedName("hogehoge")
    public List<hogehogeEntity> hoges;
}

どうもGSONとしてはオブジェクトを期待していたのに、実際の中身がオブジェクトのリストであるのは良くない模様。HogesEntityをListに無理やりキャストしてるようなもんなので、そりゃ無理だ。俺が悪い。

ということで、下記にしたら直りました。

public class HogeEntity {
    ----省略----

    @SerializedName("hogehoge")
    public List<hogehogeEntity> hoges;
}