2017-07-17 202 views
-5

試圖打開這個json的真實響應,但gettong只是這個api_data的第一個元素。獲取json的第一個元素

無法獲取其餘數據。 我嘗試了下面提到的方法來獲取「api_data」,但無法得到, 沒有得到爲什麼其餘的數據在日誌中不可用。

{ 
    "api_req": true, 
    "api_data": [{ 
     "ID": "1", 
     "project_name": "project test xen", 
     "project_content": "lita5645" 
    }, { 
     "ID": "5", 
     "project_name": "C\/o 48 No Houses T-II and 48 No houses T-III in New Police Lines Faridabad", 
     "project_content": "lita5646" 
    }] 
} 

我的改裝類來獲取數據..從API ..

public void onResponse(Call<ResponseActivityList> call, Response<ResponseActivityList> response) { 
       progressDialog.dismiss(); 
       //progressDialog.setCanceledOnTouchOutside(true); 
       // Response Success or Fail 
       if (response.isSuccessful()) { 
        if (response.body().isApi_req()) { 
         //success uploading the data 
         // results.setText(response.body().getResponse()); 
         // Toast.makeText(XenImageUploading.this, "success " + response.body().get_apiData(), Toast.LENGTH_SHORT).show(); 
         Gson gson = new Gson(); 



         data.add(gson.toJson(response.body().getApi_data())); 


         for (int i = 0 ; i<data.size(); i++){ 
          Log.e("Array", String.valueOf(data.size())); 
          projectnae_content.add(response.body().getApi_data().get(i).getID()); 
          //Log.e("project",projectnae_content.toString()); 
          //project_id.add(response.body().getApi_data().get(i).getID().toString()); 
         } 
//      Log.e("project_name" ,projectnae_content.toString()); 
         //Toast.makeText(XenImageUploading.this, jsonInString, Toast.LENGTH_SHORT).show(); 
         //String Project_name_content= response.body().getApi_data(); 
         //Log.e("intersection_list", intersection_list.get(0)); 

        } else { 
         //error uploading data 
         //results.setText(response.body().getResponse()); 
         //Toast.makeText(XenImageUploading.this, R.string.string_upload_fail, Toast.LENGTH_SHORT).show(); 
         Log.e("failure", String.valueOf(response.body().isApi_req())); 

        } 
       } else { 
        //error uploading data 
        //Toast.makeText(XenImageUploading.this, R.string.string_upload_fail, Toast.LENGTH_SHORT).show(); 
        Log.e("failure2", response.message()); 

       } 
      } 
+0

配合你嘗試過這麼遠嗎? – Luca

+0

你如何解析數據? – padeg

+0

你沒有顯示如何解析JSON時得到'只有json的第一個元素 ' –

回答

1

解析這樣,你必須將屬性與JSON

JSONObject jsonObj = new JSONObject(Response); 
JSONArray JsonArray = jsonObj.getJSONArray("api_data"); 

for (int i = 0; i < JsonArray.length(); i++) { 
JSONObject jsonObject = JsonArray.getJSONObject(i); 

    String id=jsonObject.getString("ID"); 
    String projectname=jsonObject.getString("project_name"); 
    String content=jsonObject.getString("project_content"); 

    } 
1

您需要接收內容後,分析數據。在這裏,我附上示例演示來解析你的json。

try { 
      JSONObject jsonObject = new JSONObject("hello"); 
      JSONArray api_data=jsonObject.getJSONArray("api_data"); 
      for (int i = 0; i < api_data.length(); i++) { 
       String id=api_data.getJSONObject(i).getString("ID"); 
       String name=api_data.getJSONObject(i).getString("project_name"); 
       String content=api_data.getJSONObject(i).getString("project_content"); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
1

試試這個

JSONObject jsonObj = new JSONObject(Response); 
// Getting JSON Array node 
JSONArray JsonArray = jsonObj.getJSONArray("api_data"); 
// looping through All JSON Array 
for (int i = 0; i < JsonArray.length(); i++) { 
JSONObject data = JsonArray.getJSONObject(i); 

    Log.e("ID :-> ",data.getString("ID"));// get id 
    Log.e("project_name :-> ",data.getString("project_name"));// get project name 
    Log.e("project_content :-> ",data.getString("project_content"));// get project content 
    }