0

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ファイルです。これらのファイルの両方に対して正しいマッピング(メッセージクラス)を作成するにはどうすればよいですか?または、さまざまなタイプのメッセージクラスを作成する必要がありますか?

この質問にはかなり簡単な答えがあるのではないかと思いますが、自分で見つけることはできませんでした。誰かが私にこれを説明してくれることを願っています、ありがとう!

4

1 に答える 1

2

両方のjsonは同じですが、唯一の違いは2番目のjsonデータがnullになることです。

于 2013-02-22T09:44:33.383 に答える