2016-08-10 6 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입니다.

관련 문제