2017-02-07 14 views
0
StringRequest stringRequest = new StringRequest(
       Request.Method.POST, 
       Configs.Login, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         progressDialog.dismiss(); 
         try { 
          JSONObject obj = new JSONObject(response); 
          if(!obj.getBoolean("error")){ 

           startActivity(new Intent(getApplicationContext(), MainActivity.class)); 
           finish(); 
          }else{ 
           Toast.makeText(
             getApplicationContext(), 
             obj.getString("message"), 
             Toast.LENGTH_LONG 
           ).show(); 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         progressDialog.dismiss(); 

         Toast.makeText(
           getApplicationContext(), 
           error.getMessage(), 
           Toast.LENGTH_LONG 
         ).show(); 
        } 
       } 
     ) 
      @Override 

ERROR:タイプのORG:タイプのorg.json.JSONArrayはJSONObject

org.json.JSONExceptionを示すJSON形式で

- 私得るエラーに変換できません.json.JSONArrayは、これは私のJSON形式でJSONObject

に変換することはできません

[{ "ID": "1"、 "ノーム": "管理者"、 "電子メール": "[email protected] "、" password ":" xxxxxxx "}]

+1

@ρяσѕpєєя送信したことはありません –

答えて

0

JSON strinあなたが言及した "["と "]で終わる"で始まります。これは配列を表します。 JSONオブジェクトは「{」で始まり「}」で終わります。

JSON文字列を囲む角括弧を取り除く必要があります。それはあなたの問題を解決するだろう。

これが不可能な場合は、文字列からJSONArrayを作成し、そこから最初の項目を使用して名前や電子メールなどのプロパティを取得できます。

JSONArray jsonArray = new JSONArray(response); 
JSONObject obj = jsonArray.getJSONObject(0); 

これで問題が解決するはずです。

+0

私に例を挙げてください... –

+0

私はコンピュータの近くにいません。しかし、簡単なことは、JSON文字列にそれを囲む角括弧がないことを確認することです。それが不可能な場合は、オブジェクトの配列にJSON文字列を逆シリアル化してから、配列から最初のものを取り出してプロパティを取り出すことができます。 –

+0

さて、私はあなたを待っています。あなたが正しく行ったら、あなたは小切手の回答を受け取ります。 –

関連する問題