JSON配列またはオブジェクトを返すAPIがあります。例えばJSONオブジェクトJava Gsonライブラリを使用して動的JSON応答を変換する方法
{
"id": 1,
"name": "name"
}
JSON配列:
[
{
"id": 1,
"name": "name"
},
{
"id": 1,
"name": "name"
}
]
POJOにJSONオブジェクト応答をマッピング私が使用:
MyEntity myEntity = new Gson().fromJson(jsonString, MyEntity.class);
のPOJOの配列にJSONアレイ応答をマッピングします私は以下を使用します:
MyEntity[] myEntity = new GSON().fromJson(jsonString, MyEntity[].class);
これらの2つの応答を適切なタイプに動的に変換するにはどうすればよいですか?
注:私はサーバーの応答を変更できません。これは公開APIです。
ありがとうございました!
EDIT:
私はこれを自動的に行いメソッドを実装しようとしていますが、私は何かが欠けています。メソッド
public <T> T convertResponseToEntity(Class<T> classOfT)
{
JsonElement jsonElement = this.gson.fromJson(getResponseAsString(), JsonElement.class);
if (jsonElement.isJsonArray()) {
Type listType = new TypeToken<T>(){}.getType();
return this.gson.fromJson(getResponseAsString(), listType);
}
return this.gson.fromJson(getResponseAsString(), (Type) classOfT);
}
LinkedTreeMap
のリストを返します。 Object[]
と同じコンテンツを返すようにコードを変更するにはどうすればよいですか?