2016-06-16 7 views
0

gitからこのような提案がありました しかし、私はそれをどのように使用するのかわかりません。どこから呼び出すべきですか? retrofitはjson、xmlに変換できますが、オブジェクトとして変換する必要がありますデータと文字列も改造を使用してjsonオブジェクトと文字列を取得するデータを変換する方法は?

@GET("whatever") 
Call<Pair<User, String>> whatever(); 

Type firstType = //reflection 
Converter<ResponseBody, Object> delegate = retrofit.nextResponseBodyConverter(firstType, annotations); 
return new Converter<ResponseBody, Pair<Object, String>>() { 


@Override public Pair<Object, String> convert(ResponseBody body) { 
String string = body.string(); 
Object object = delegate.convert(ResponseBody.create(null, string)); 
return new Pair<>(object, string); 
    } 
}; 

答えて

0

最初にRetrofit documentationをチェックアウトしてください。それは便利です。

thisチュートリアルもご覧ください。ちょっと長いですが、十分です。

あなたが必要とするすべての4つの物事のすべて:

  • POJO(プレーン古いJavaオブジェクト)別名学生、車、ユーザなど
  • RESTクライアント - チュートリアルをチェックアウト
  • インタフェースAPIの各部分を説明する - チュートリアルを確認する -
  • APIを呼び出すときにコールバックが更新されるのを待って、必要な情報を入力する - チュートリアル
  • をチェックしてください
+0

私はそれを参照してください、私はそれを乗り越えます私は両方のデータを持っている必要がありますが、それは私の場合ではない、それは標準的なケースです –

0

あなたの@GETリクエストはそのような何か受信している場合:要求してください

public interface MyInterface { 
    @GET("/api/user/1") 
    Call<ResponseBody> getMyObject(); 
} 

{ 
    "user": { 
    "id": 1, 
    "name": "John" 
    }, 
    "str": "Hello World" 
} 

インターフェイスを

Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl("http://server.com") 
       .addConverterFactory(GsonConverterFactory.create()) 
       .build(); 
MyInterface service = retrofit.create(MyInterface.class); 

service.enqueue(new Callback<ResponseBody>() { 
    @Override 
    public void onResponse(Response<ResponseBody> response, Retrofit retrofit) { 
     String raw = response.body().string(); 
     MyObject object = new Gson().fromJson(raw, MyObject.class); 
    } 

    @Override 
    public void onFailure(Throwable t) { 
    } 
}); 
+0

私が知っているこのシンプルなケース、私は上に取得する必要があります解析されたデータだけでなく文字列(生データ) <ペア<ユーザー、文字列> どのように実装する必要がありますか? @ A.Omar –

+0

Pair <>オブジェクトを使用しないことをお勧めします。UserオブジェクトとString内に独自のオブジェクトを作成し、上記の方法で受け取ってください。 –

+0

しかし、response.body()はidと名。私は生のXML(解析する前に)も必要ですが、おそらく私はあなたのコードに紛失していますか? –

関連する問題