簡體   English   中英

如何獲取JSONArrayRequest JSONArray對JSONObject的響應

[英]How To Get JsonArrayRequest JSONArray Response To JSONObject

我從昨天開始就遇到了這個問題,從我的服務器獲取數據。 我在POSTMAN中測試我的PHP代碼並將格式更改為JSON,我甚至在JSONLint上測試它並返回有效的json。 我注意到它返回一個JSONObject而不是JSONArray (據我所知JSONArray以[ ]開頭。

響應

這是我的java代碼: orgFragment.java

public void parseJSONData(){
    RequestQueue requestQueue = Volley.newRequestQueue(getContext());
    JsonArrayRequest jsonArray = new JsonArrayRequest(ServerScripts.PHP_SCRIPT_PATH + ServerScripts.PHP_GET_FEEDS, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            if (response.length() > 0){
                try {
                    organizationDataList.clear();
                    for (int i = 0; i < response.length(); i++ ){
                        JSONObject jsonObject = response.getJSONObject(i);
                        OrganizationData organizationData = new OrganizationData();

                        //SQL TABLE NAME
                        if (!jsonObject.isNull("organizationName")){
                            organizationData.orgName = jsonObject.getString("organizationName");
                        }

                        if (!jsonObject.isNull("organizationType")){
                            organizationData.orgType = jsonObject.getString("organizationType");
                        }

                        if (!jsonObject.isNull("organizationDescription")){
                            organizationData.orgDesc = jsonObject.getString("organizationDescription");
                        }

                        if (!jsonObject.isNull("organizationCategory")){
                            organizationData.orgCategory = jsonObject.getString("organizationCategory");
                        }

                        if (!jsonObject.isNull("organizationCurrentMembers")){
                            organizationData.orgCurrentMembers = jsonObject.getInt("organizationCurrentMembers");
                        }

                        if (!jsonObject.isNull("organizationMaxMembersNo")){
                            organizationData.orgMaxMembers = jsonObject.getInt("organizationMaxMembersNo");
                        }
                        //ADD
                        organizationDataList.add(organizationData);
                    }
                        //NOTIFY
                        orgListAdapter.notifyDataSetChanged();

                }catch (Exception e){
                    e.printStackTrace();
                    Toast.makeText(getContext(),e.toString(),Toast.LENGTH_LONG).show();
                    Log.e("JSON Parser", "Error parsing data " + e.toString());
                }
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            String getErrorMsg = error.toString();
            Toast.makeText(getContext(),"Failed to Fetch Data" + getErrorMsg,Toast.LENGTH_LONG).show();
        }

    });
    requestQueue.add(jsonArray);

}

錯誤: 我只是從類型org.json.JSONObject的Logcat成功“}中剪切了json錯誤響應,無法轉換為JSONArray

我只是修改我的PHP代碼,返回一個JSONArray。

//if($_SERVER['REQUEST_METHOD'] == ''){


     require('dbConnect.php');

     $SQLi_ORG_FEEDS = "SELECT organizationName,organizationDescription,organizationCategory,
                        organizationCurrentMembers,organizationMaxMembersNo,organizationType FROM org_information";

     $query = mysqli_query($dbConnect,$SQLi_ORG_FEEDS) or die("Error".mysqli_error($dbConnect));

     $checkRow = mysqli_num_rows($query);

     $response = array();

     if($checkRow > 0){
         while ($getRecord = mysqli_fetch_array($query)) {
            $response[] = $getRecord;

        /*array_push($response,array(
            "organizationName"=>$getRecord['organizationName'],
            "organizationDescription"=>$getRecord['organizationDescription'],
            "organizationCategory"=>$getRecord['organizationCategory'],
            "organizationCurrentMembers"=>$getRecord['organizationCurrentMembers'],
            "organizationMaxMembersNo"=>$getRecord['organizationMaxMembersNo'],
            "organizationType"=>$getRecord['organizationType']));*/
         }

            //$response['success'] = 'success';
            echo json_encode($response);
            //echo json_encode(array("response"=>$response));
     }
     else {
            $response['failed'] = 'failed';
            echo json_encode($response);
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM