次のようなメッセージで json で応答する REST サービスを使用します。
{
"statusMessage":{
"message":"my message",
"error":false
},
"data":null
}
フィールドdata
は配列で、null の場合もあれば、1 つのクラスのインスタンス (Partner、Department、Building など、1 つのタイプのみ) で埋められる場合もあります。
私のJavaアプリにはServerResponse
クラスがあり、次のようになります。
public class ServerResponse {
private StatusMessage statusMessage;
private List<Object> data;
public ServerResponse(StatusMessage statusMessage, List<Object> data) {
this.statusMessage = statusMessage;
this.data = data;
}
...
}
がnullのときdata
は問題ありませんが、オブジェクトでいっぱいになったとき、デシリアライズする方法がわかりません。私が使用する場合:
response = gson.fromJson(result, ServerResponse.class);
のオブジェクトのリストをキャストまたは使用できませんdata
。さらに、Java でフィールド データを次のように宣言すると、次のようになります。
private List<Department> data;
タイプでは問題なく動作しますDepartment
が、予想どおり、他のタイプではエラーがスローされます。私は立ち往生しています...