2016-08-10 20 views
-2

私はJsonメソッドでこれを取得しています。 サーバとmysqlデータベースから情報を取得しようとしていて、それをユーザ名のテキストビューに表示しようとしています。 これは私のJson Methodです。インデックスから範囲外のエラーがスローされます。0の範囲外です。[0 ... 0]

おそらく必要ない
private void showJSON(String response) { 
    String username = ""; 

    try { 
     JSONObject jsonObject = new JSONObject(response); 
     JSONArray result = jsonObject.getJSONArray(Constantss.JSON_ARRAY); 
     JSONObject profileData = result.getJSONObject(0); 
     username = profileData.getString(Constantss.USERNAME); 

     System.out.println("first" + username); 


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

    } 

    usernameView.setText(username); 
    System.out.println("second" + username); 

} 

が、これは私が私のデータを取得しています方法です、それは私がIDを取得し、また私のユーザー名を与えるためにPHPコードを実行することができています正常に動作します。

private void getData() { 
    class lata extends AsyncTask<String, Void, String> { 

     @Override 
     protected String doInBackground(String... params) { 
      CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
        getApplicationContext(), //Context 
        "us-east--------------", //Identity Pool ID 
        Regions.US_EAST_1 // Region 
        //Now we retrieve 
      ); 

//  return null; 
      String identityID = credentialsProvider.getIdentityId(); 
      Log.d("LogTag", "my ID is" + identityID); 
      String id = identityID; 
      String userid = identityID; 

      System.out.println("Id is" + identityID); 
      System.out.println("Id tis" + id); 
      String url = Constantss.PROFILE_URL + identityID; 
      StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        showJSON(response); 
       } 
      }, 
        new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 
          Toast.makeText(Profile.this, error.getMessage().toString(), Toast.LENGTH_SHORT).show(); 

         } 
        }); 
      RequestQueue requestQueue =  Volley.newRequestQueue(Profile.this); 
      requestQueue.add(stringRequest); 


      return identityID; 
     } 


    } 
    lata pasta = new lata(); 
    pasta.execute(); 
} 
+1

これはすべてJavaコードです。 mysqliはどこにありますか? – tadman

+0

私は情報を取得するためにPHPとMysqliを使用しています。 –

答えて

0

おそらく、配列の長さは0です。確認してください。あなたは

private void showJSON(String response) {

に応答VARを検証しようとすることができ

0

は明らかにJSONArray結果のJSONをデコードする

0

使用Gsonはあなたがやった方法よりもはるかに便利になります空ではなく、長さは0です

関連する問題