索引0超出范围[0 ... 0]

时间:2016-08-10 02:55:08

标签: android mysql json mysqli

我在Json方法中得到了这个。 我试图从我的服务器和mysql数据库获取信息,然后在我的用户名文本视图中显示它。 这是我的Json方法。它会使索引超出范围错误。

 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();
}

3 个答案:

答案 0 :(得分:0)

你的阵列的长度可能是0.请检查一下。

答案 1 :(得分:0)

您可以尝试验证

中的响应变量

private void showJSON(String response) {

不是空的

答案 2 :(得分:0)

使用Gson解码json会比你做的方便得多,显然JSONArray结果的长度为0