Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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
volley get response返回类型为java.lang.String的值,无法将该值转换为JSONArray_Java_Android_Arrays_Api_Android Volley - Fatal编程技术网

volley get response返回类型为java.lang.String的值,无法将该值转换为JSONArray

volley get response返回类型为java.lang.String的值,无法将该值转换为JSONArray,java,android,arrays,api,android-volley,Java,Android,Arrays,Api,Android Volley,我正在尝试使用api进行身份验证。如果我在响应时出错,我的api将返回以下响应并出现以下错误 无法将java.lang.String类型的值转换为JSONArray 请帮忙,我是个新手 这是我的api返回的结果: [{“status”:“True”,“username”:“parent”,“schoolid”:“001”,“category”:“3”,“usercode”:“0720994718”}] 这是我的密码 RequestQueue queue=Volley.newRequestQu

我正在尝试使用api进行身份验证。如果我在响应时出错,我的api将返回以下响应并出现以下错误

无法将java.lang.String类型的值转换为JSONArray

请帮忙,我是个新手

这是我的api返回的结果:


[{“status”:“True”,“username”:“parent”,“schoolid”:“001”,“category”:“3”,“usercode”:“0720994718”}]
这是我的密码

RequestQueue queue=Volley.newRequestQueue(LoginActivity.this);
//创建一个StringRequest
StringRequest=新的StringRequest(request.Method.GET,
网址,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONArray jArray=新JSONArray(响应);
int i=0;
而(i
I was change
JSONArray jArray=newjsonarray(响应)
to
JSONObject jObject=新的JSONObject(响应)
JSONObject json_data=jArray.getJSONObject(i)
to
String json_data=jObject(i)。请试一试

RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
        //create a StringRequest
        StringRequest request = new StringRequest( Request.Method.GET,
           URL,
           new Response.Listener<String>() {
               @Override
               public void onResponse(String response) {
          try {

               JSONObject jObject = new JSONObject(response);

                int i = 0;
                while (i < jArray.length()) {

                       String json_data = jObject(i);

                      String status = json_data.getString("status");
               if (status == "True") {
                   Intent intent = new Intent(LoginActivity.this, ParentActivity.class);
                   startActivity(intent);
                   Toast.makeText(LoginActivity.this, "logged in as " + user,
                    Toast.LENGTH_LONG).show();
                } else {
                      Toast.makeText(LoginActivity.this, "wrong username or password",
                      Toast.LENGTH_LONG).show();
                        }
                  i++;

                     }
                 } catch (JSONException e) {
                            e.printStackTrace();
                     }
                }

             },

           new Response.ErrorListener() {
                @Override
                 public void onErrorResponse(VolleyError error) {
                 Toast.makeText(LoginActivity.this, "Error!!! " + error.toString(), 
                    Toast.LENGTH_LONG).show();
                    }
                }
        ) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("username", user);
                params.put("password", pass);
                return params;
            }
        };
        //add the StringRequest to the RequestQueue
        queue.add(request);
    }
RequestQueue queue=Volley.newRequestQueue(LoginActivity.this);
//创建一个StringRequest
StringRequest=新的StringRequest(request.Method.GET,
网址,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jObject=新JSONObject(响应);
int i=0;
而(i
您的API是否返回

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
[{"status":"True","username":"parent","schoolid":"001","category":"3","usercode":"0720994718"}]
</string>
?


如果是第一个,那么您应该在调用“JSONArray jArray=new JSONArray(response);”之前从XML答案中提取JSON字符串,然后执行类似于“JSONArray jArray=new JSONArray(JSON_响应的一部分);”.

我认为您的JSON数组在XML中,因此您必须首先使用dom解析器解析XML

这是否回答了您的问题?同样没有帮助,这是我的api返回的[{“status”:“True”,“username”:“parent”,“schoolid”:“001”,“category”:“3”,“usercode”:“0720994718”}]
[{"status":"True","username":"parent","schoolid":"001","category":"3","usercode":"0720994718"}]