在java.lang.String类型的操作中,值true无法转换为JSONArray

时间:2017-03-18 09:55:55

标签: java android json

我试图获得"行动" json响应的值并用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) {

        }
    });

但我在我的textview中什么也没得到,我在Android Monitor中得到了这个:

&#34;在java.lang.String类型的操作中,值true无法转换为JSONArray&#34;

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

因为这条线而停滞不前:

public function __construct(\Magento\Config\Model\ResourceModel\Config $resourceConfig) {
    $this->resourceConfig = $resourceConfig;
}

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

下面应该有效:

Exception

答案 1 :(得分:0)

{"action":"true"}

它只有json Object而不是json数组,所以你将解析这个json String,如下所示

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) {

        }
    });