2017-11-29 15 views
-1

私は通常、サーバーからデータを送信しフェッチするのにvolleyを使用しますが、私の1つのアクティビティでは、データを送信し、サーバーから受信するためにokHttpClientを使用しています。私はサーバーからデータを送受信できますが、フィールドごとに分離することはできません。以下はokHttpClientを使用してレスポンスを取得する方法は?

私のコード

 @Override 
     public void onResponse(Call call, final okhttp3.Response response) throws IOException { 
      getActivity().runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        try { 

         JSONObject jsonObject = new JSONObject(response.body().string()); 


         Toast.makeText(getActivity(), "mail sent successfully.", Toast.LENGTH_SHORT).show(); 

         description.setText(" "); 
         txt_picture_preview.setImageResource(android.R.color.transparent); 
         selecttypedec.setSelection(0); 

         progressDialog.dismiss(); 


         Log.d("TAG", "response of image: " + response.body().string()); 

        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
       } 

である。しかし、それは私がすなわち例外Error:私はデータフィールドを取得することができますどのように私を助けてください

「org.json.JSON例外の文字0での入力の終了」賢い。 Response from server

これは私の回答です。助けてください。

{ "user_detail":{ "ID":110、 "USER_ID" 53、 "address_type": "H"、 "ステータス": "A"、 "house_number": "2"、 "street_number ":" zuiderdijk "、" city ":" wetteren "、" country ":"ベルギー "、" postal_code ":" 9230 "、" latitude ":" "、"経度 ":" "、" created_at ":" 2017 "admin_status": "A"、 "user":{"admin_status"、 "admin_status"、 "admin_status": "1111" id:53、first_name、chitra、last_name、solanki、email、[email protected]、null、 :null、 "language": "fr"、 "otp":null、 "status": "A"、 "gcm_id":null、 "imei_number": "356554060835242"、 "sms_status": "n"、 "api_token" : "$ 2y $ 10 $ QKOHH7GYJc/eVT4BGqq5U.0hEp8iVZh0Ybep9yySWjlM6SYRvG0gC"、 "created_at": "2017-11-13 11:12:06"、 "updated_at": "2017-11-29 10:29:35"} }、 "成功": "!現在 アクティブな場所が正常に更新さ"}

+0

reply.body()トレース全体を投稿できますか? –

+0

check updated post @rajanks –

+0

サーバから有効な応答が得られていることを確認してください。そのjson形式の –

答えて

0

この

try { 
     JSONObject jsonObject= new JSONObject(response.body().string()); 
     JSONObject user_detail= jsonObject.getJSONObject("user_detail"); 

     Log.e("id",user_detail.getString("id")); 
     Log.e("user_id",user_detail.getString("user_id")); 
     Log.e("address_type",user_detail.getString("address_type")); 
     Log.e("status",user_detail.getString("status")); 
     Log.e("house_number",user_detail.getString("house_number")); 
     Log.e("street_number",user_detail.getString("street_number")); 
     Log.e("city",user_detail.getString("city")); 
     Log.e("country",user_detail.getString("country")); 
     Log.e("postal_code",user_detail.getString("postal_code")); 
     Log.e("latitude",user_detail.getString("latitude")); 
     Log.e("longitude",user_detail.getString("longitude")); 
     Log.e("created_at",user_detail.getString("created_at")); 
     Log.e("updated_at",user_detail.getString("updated_at")); 
     Log.e("admin_id",user_detail.getString("admin_id")); 
     Log.e("admin_status",user_detail.getString("admin_status")); 

     JSONObject user= user_detail.getJSONObject("user"); 
     Log.e("id",user.getString("id")); 
     Log.e("first_name",user.getString("first_name")); 
     Log.e("last_name",user.getString("last_name")); 
     Log.e("email",user.getString("email")); 
     Log.e("mobile",user.getString("mobile")); 
     Log.e("sms_alternate_number",user.getString("sms_alternate_number")); 
     Log.e("postal_code",user.getString("postal_code")); 
     Log.e("language",user.getString("language")); 
     Log.e("otp",user.getString("otp")); 
     Log.e("status",user.getString("status")); 
     Log.e("gcm_id",user.getString("gcm_id")); 
     Log.e("imei_number",user.getString("imei_number")); 
     Log.e("sms_status",user.getString("sms_status")); 
     Log.e("api_token",user.getString("api_token")); 
     Log.e("created_at",user.getString("created_at")); 
     Log.e("updated_at",user.getString("updated_at")); 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

は動作しません。私はフィールド "応答"を取得していない –

+0

私の更新の回答を確認してください。 –

+0

まだエラーが発生しています –

0

は今、あなたはモデルクラスがModel class

はこちらから参照を取る確認する必要があります試してみてください今クラスでは、応答でJson形式で来るすべてのフィールドを宣言します。どちらのとおりである。私は、user_idは、ステータス、address_type ....等...今

あなたがアクセスできるのだろうとJSONのように:あなたは全体のエンティティへのアクセスを得た。このように

JSONObject userdetailObject = jsonObject.getJsonObject("user_detail"); 
    ModelClass model = new ModelClass(); 
    model.setId(userdetailObject.getString("I'd"); 
Model.serUserId(userdetailObject.getString("user_id"); 

私たちはボレーのPOJOクラスのように "モデルオブジェクト"で変数を設定します

ありがとう、私に助けが必要であることを教えてください。

ハッピーコーディング

+0

このアプローチを使用するとエラーが発生します –

+0

どのようなエラーが発生し、どのように私に詳細を教えていただけますか... ...解決できるように –

+0

このアプローチを使用してokHttpClientから応答を取得していますが、私がポストで説明したように例外。 –

関連する問題