SpringforAndroidをHTTPクライアントとして使用しています。次のような基本認証を使用してリクエストを実行するとします。
// Create a new RestTemplate instance
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
try {
// Make the network request
Log.d(TAG, url);
ResponseEntity<Message> response = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<Object>(requestHeaders), Message.class);
System.out.println(response.toString());
} catch (HttpClientErrorException e) {
Log.e(TAG, e.getLocalizedMessage(), e);
e.getLocalizedMessage());
}
}
私が理解しているのは、Messageクラスは、このリクエストから返されることを期待しているJSONのマッピングである必要があるということです。しかし、今私は問題を抱えています:リクエストのヘッダーに応じて、さまざまなタイプのJSONが返される可能性があります。ユーザーが許可されている場合は、次のようになります。
{
"message": "ok",
"code": 200,
"data:{
... just some more json data ..
}
}
ただし、ユーザーが自動化されていない場合、データは失われます(もちろん)。だからこのようになります
{
"message": "You are not authorized to use this service",
"code": 5201
}
しかし、これは2種類のJSONファイルです。これらのファイルの両方に対して正しいマッピング(メッセージクラス)を作成するにはどうすればよいですか?または、さまざまなタイプのメッセージクラスを作成する必要がありますか?
この質問にはかなり簡単な答えがあるのではないかと思いますが、自分で見つけることはできませんでした。誰かが私にこれを説明してくれることを願っています、ありがとう!