2017-03-18 11 views
-3

に変換することはできません私はここでJSONレスポンスの「アクション」の値を取得してのTextViewでそれを示し、 しようとしている私のJSONです:値がJSONArray

{ "アクション": "真"}ここ

とは、私の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のモニタでこれを得た:

「値TRタイプjava.lang.StringのアクションでueをJSONArrayに変換できません "

これをどのように修正できますか?

+0

'action'がJSONarrayではありませんが...次のようにあなたは、このJSON文字列を解析しますので、それだけでJSONオブジェクトのJSONないアレイを有し、 .use 'object.getString(" action ");' – rafsanahmad007

+0

「アクション」jsonオブジェクトは1つしか取得していませんか? –

+0

'for'ループの目的は何ですか?それは何もしていない。 –

答えて

1

それが原因でこのラインのfalilingされています。あなたはそれ故にExceptionJSONArrayにそれをキャストしようとしているのに対し、

JSONArray Jarray = object.getJSONArray("action"); 

actionは、実際にJSONオブジェクトです。

以下

は動作するはずです:

JSONObject object = new JSONObject(response); 
String message = object.getString("action"); 
0
{"action":"true"} 

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

     } 
    });