仅获取 json 的第一个元素

Getting only first element of json

尝试在真实响应中打开此 json,但只收到此 api_data 的第一个元素。

无法获取其余数据。 我尝试了下面提到的方法来获取 "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"
    }]
} 

我的改装 class 以获取数据.. 来自 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());

                }
            } 

您需要在接收到内容后解析数据。在这里,我附上示例演示来解析您的 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();
        }

试试这个

 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
  }

这样解析,你必须把属性和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");

  }