2017-07-17 233 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 
    } 
相关问题