Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 凌空向Arraylist传递JsonArray请求_Android_Json_Android Volley - Fatal编程技术网

Android 凌空向Arraylist传递JsonArray请求

Android 凌空向Arraylist传递JsonArray请求,android,json,android-volley,Android,Json,Android Volley,您好,我是android新手,我尝试使用jsonarray请求将json响应传递给arraylist,但我遇到了以下错误: 错误: 截击错误org.json.JSONException:无法将java.lang.String类型的值

您好,我是android新手,我尝试使用jsonarray请求将json响应传递给arraylist,但我遇到了以下错误:

错误:

截击错误org.json.JSONException:无法将java.lang.String类型的值 Php代码:

$userid=$_POST["userid"];

$semester=$_POST["semester"];

$level=$_POST["level"];

$stmt="SELECT coursecode,coursetitle,grade,credithrs,marks FROM tblresults WHERE userid = '$userid' and semester = '$semester' and level = '$level'";

$result=mysqli_query($conn,$stmt);
$responsea=array();

while($respons=mysqli_fetch_array($result)){
    $response["coursecode"]=$respons['coursecode'];
    $response["coursetitle"]=$respons['coursetitle'];
    $response["grade"]=$respons['grade'];
    $response["credithrs"]=$respons['credithrs'];
    $response["marks"]=$respons['marks'];
    $responsea[]=$response;
    }   
echo json_encode($responsea);
Php响应:

[{"coursecode":"csc234","coursetitle":"Information Security","grade":"A","credithrs":"3","marks":"80.00"},{"coursecode":"csc300","coursetitle":"Cryptography","grade":"B","credithrs":"3","marks":"65.00"}]
android代码:

    public ArrayList<resultInstance> extractresult() {

    CheckResultFragment checkResultFragment=new CheckResultFragment();
    final String gsem=checkResultFragment.gsem;
    final String glev=checkResultFragment.glev;

    JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.POST, jsonurl, null,
            new Response.Listener<JSONArray>() {

                @Override
                public void onResponse(JSONArray response) {
                    int i=0;
                    while (i<response.length()){
                        try {

                            JSONObject jsonObject=response.getJSONObject(i);
                            resultInstance resultinstance =new resultInstance(
                                    jsonObject.getString("coursecode"),
                                    jsonObject.getString("coursetitle"),
                                    jsonObject.getInt("credit"),
                                    jsonObject.getDouble("marks"),
                                    jsonObject.getString("grade"));
                            results.add(resultinstance);
                            i++;
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

            error.printStackTrace();
        }
    }
    ){
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String,String> params=new HashMap<>();
            params.put("userid",guid);
            params.put("level",glev);
            params.put("semester",gsem);

            return params;
        }
    };

    VolleySingleton.getInstance(context).addToRequestQueue(jsonArrayRequest);

    return  results;
}
public ArrayList extractresult(){
CheckResultFragment CheckResultFragment=新的CheckResultFragment();
最终字符串gsem=checkResultFragment.gsem;
最终字符串glev=checkResultFragment.glev;
JsonArrayRequest JsonArrayRequest=新的JsonArrayRequest(Request.Method.POST,jsonurl,null,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
int i=0;

虽然(我调试并设置断点,但您的API调用php响应不是JSONArray格式。请发送正确的JSONArray格式作为对API调用请求的响应。

您好,您可以给我一个正确JSONArray格式的示例。
[{“coursecode”:“csc234”,“CourseTile”:“信息安全”,“等级”:“a”,“credithrs”:“3”,“分数”:“80.00”},{“coursecode”:“csc300”,“CourseTile”:“密码学”,“等级”:“B”,“学分HRS”:“3”,“分数”:“65.00”}]
您的JSONArray格式是正确的。但有时,使用PHP后端,HTML标记也会随响应一起出现。例如,
。在这种情况下,会发生上述异常。因此,是否仍有办法解决此错误,因为我正在研究,但尚未找到任何解决方案。感谢您的帮助。您需要在PHP backen中修复此错误d代码。特别是在发送响应代码段上。