无法将java.lang.String类型的操作处的值true转换为JSONArray

无法将java.lang.String类型的操作处的值true转换为JSONArray,java,android,json,Java,Android,Json,我试图获取json响应的“action”值,并用textview显示它, 这是我的json: {“动作”:“正确”} 这是我的java代码 StringRequest stringRequest = new StringRequest(Request.Method.POST, reg_url, new Response.Listener<String>() { @Override public void onResponse(String resp

我试图获取json响应的“action”值,并用textview显示它, 这是我的json:

{“动作”:“正确”}

这是我的java代码

  StringRequest stringRequest = new StringRequest(Request.Method.POST, reg_url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try {


                JSONObject object = new JSONObject(response);
                JSONArray Jarray  = object.getJSONArray("action");
                String message = object.getString("action");

                for (int i = 0; i < Jarray.length(); i++)
                {
                    JSONObject Jasonobject = Jarray.getJSONObject(i);
                }

                txtproductsenf.setText(message);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

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

        }
    });
StringRequest StringRequest=new StringRequest(Request.Method.POST,reg_url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject对象=新的JSONObject(响应);
JSONArray Jarray=object.getJSONArray(“操作”);
字符串消息=object.getString(“操作”);
for(int i=0;i
但是我在我的文本视图中什么都没有,我在Android监视器中得到了这个:

“无法将java.lang.String类型的操作的值true转换为JSONArray”


如何修复此问题?

由于这一行,它出现故障:

JSONArray Jarray  = object.getJSONArray("action");
action
实际上是一个JSON对象,而您正试图将其强制转换为
JSONArray
,因此出现了
异常

以下内容应该有效:

JSONObject object = new JSONObject(response);
String message = object.getString("action");
它只有json对象而不是json数组,因此您将按如下方式解析此json字符串

StringRequest stringRequest = new StringRequest(Request.Method.POST, reg_url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try {


                JSONObject object = new JSONObject(response);
                String message = object.getString("action");
                txtproductsenf.setText(message);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

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

        }
    });
StringRequest StringRequest=new StringRequest(Request.Method.POST,reg_url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject对象=新的JSONObject(响应);
字符串消息=object.getString(“操作”);
txtproductsenf.setText(消息);
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});

action
不是JSONarray…使用
object.getString(“action”)你只有一个“动作”json对象吗?只是想知道。。。
for
循环的目的是什么?它什么都没做。我想你还没有基本的JSON解析知识。你最好坚持Java命名约定。变量名称应以小写字母开头!
StringRequest stringRequest = new StringRequest(Request.Method.POST, reg_url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try {


                JSONObject object = new JSONObject(response);
                String message = object.getString("action");
                txtproductsenf.setText(message);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

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

        }
    });