サーバーからの JSON 文字列があり、それを制御できません。
jsonschema2pojo ライブラリーをプログラムで使用して Java クラスを生成しました。
GSON を使用して、JSON を Java オブジェクトに逆シリアル化しています。
JSON の例を次に示します。
"description_by_id": {
"50": {
"field1": "value1",
"field2": "value2",
"field3": "value3"
}
}
その「50」サブクラスは、実際には、同様に数字として名前が付けられている 18 のクラスのうちの 1 つにすぎません。
jsonschema2pojo が Java クラスを生成するとき、理解できるように、クラス名を作成するために先頭にアンダースコアが追加されます (つまり、_50)。
jsonschema2pojo は、次のメンバーで DescriptionById クラスを生成します。
@JsonProperty("50")
private com.me.models._50 _50;
ゲッターは次のようになります (セッターも同様です)。
@JsonProperty("50")
public com.me.models._50 get50() {
return _50;
}
私はこのようにGSONを使用しています:
Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
しかし、GSON の実行後、_50 オブジェクトとその他の 17 オブジェクトはすべて null であり、JSON 内の対応するスポットが実際に実際の値で埋められていることを確認しました。
このチェーンに沿って、問題を手動でハックすることなく適切に機能させるためにできることはありますか?