2016-06-23 5 views
0

こんにちは私はjsonの構造を持っており、私はURLからデータを取得する必要があります。どうやってやるの?クラスと関数とは何ですか?私を助けてください。ありがとう。Retrofit 2を使用してこのJSON構造を使用するにはどうすればよいですか?

ここは私のjsonです。

{ 
nodes: [ 
{ 
node: { 
title: "...", 
field_news_image: [ 
{title="..."}, 
{title="..."}, 
{title="..."}, 
{title="..."}, 
{title="..."}, 
{title="..."}, 
{title="..."} 
], 
body: "...", 
field_category: "...", 
created: "..." 
} 
}, 
{ 
node: { 
title: "...", 
field_news_image: [ 
{title="..."}, 
{title="..."}, 
{title="..."}, 
{title="..."}, 
{title="..."} 
], 
body: "...", 
field_category: "...", 
created: "..." 
} 
} 
] 
} 

答えて

1

使用jsonschema2pojo.orgは、あなたがresponce、それはあなたのためのJavaクラスを生成します貼り付けます。 あなたは、このように必要なすべてのコンポーネントを設定することにより、レトロフィットインスタンスをインスタンス化:

Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl(BuildConfig.BASE_URL) 
       .client(okHttpClient) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 
       .build(); 

をして、あなたのインターフェイスは、次のようになります。

@GET("api/service/schedule/{filial}") 
    Observable<Response<List<Event>>> getSchedule(@Path("filial") String filial); 

@ GET-注釈定める要求タイプ、 レスポンスが<>ここで - タイプ使用しますRetrofitでは、応答が成功したかどうかの情報を持ちます(クラスメソッドを参照)。 Observable <> - rxJavaライブラリのタイプで、反応的な方法でリクエストを処理できます。 RxJavaはバックグラウンドでの実行を非常に簡単にするため、RxJavaを使用することを強くお勧めします。 (AsyncTasksを使用しないでください!!)。あなたのGradleファイルに次の行を追加しますRetrofit2を使用するために

//Reactive programming 
    compile 'io.reactivex:rxjava:1.1.5' 
    compile 'io.reactivex:rxandroid:1.2.0' 


    compile 'com.google.code.gson:gson:2.4' 
    //retrofit and okhttp 
    compile 'com.squareup.okhttp3:okhttp:3.2.0' 
    compile 'com.squareup.retrofit2:retrofit:2.0.2' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.2' 
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2' 

あなたが同様の呼び出しによってRetrofit2インターフェイスをインスタンス化します: retrofit.create(Api.class)

+0

私のレトロフィットインターフェイスはありますか? – nuhkoca

+0

回答を編集します –

1

http://www.jsonschema2pojo.org/

JSONレスポンスをここに入力し、このWebサイトからjavaコードをダウンロードしてください。次に、このJavaコードをプロジェクトに入れて使用します。このウェブサイトは、必要なすべての必須のクラスを作成し、JSONの回答に完全に適合します。私はこれが確かに動作する多くの時間を使用しています。

http://square.github.io/retrofit/ここでは、POSTまたはGETデータにretrofitを使用する方法に関する詳細情報を得ることができます。

Retrofitは、HTTP APIをJavaインターフェイスに変換します。

public interface YourService { 
    @GET("users/{user}/repos") 
    Call<List<Repository>> listRepos(@Path("user") String user); 
} 

Retrofitクラスは、インターフェイスの実装を生成します。

  • URLパラメータの交換と体を要求するクエリパラメータをサポートオブジェクト 変換(例えば、JSON、プロトコル・バッファー)マルチパート リクエストボディとファイル:HTTP要求を記述するための

    Retrofit retrofit = new Retrofit.Builder() 
        .baseUrl("https://api.yourAPI.com/") 
        .build(); 
    
    YourService service = retrofit.create(YourService .class); 
    
    Call<List<Repository>> repos = service.listRepos("myrepository"); 
    

    使用注釈アップロード

関連する問題