0

mysql から値を取得して sqlite データベースに挿入しようとしていますが、範囲外の json インデックスでエラーが発生しています。

これが私のコードです。 私はjson解析例外を取得しています:

    protected void onPostExecute(Void v) 
     {
        try{
            Database1 db=new Database1(getApplicationContext());

            JSONArray jArray = new JSONArray(result);

            for(int i=0;i<=jArray.length();i++)
              {
                 JSONObject json_data = jArray.getJSONObject(i);

                    // list1.add(json_data.getString("id"));
                            int s=json_data.getInt("id");
                  j=json_data.getString("name");


              db.open();
              db.inserttable1(s,j);

                   Toast.makeText(getBaseContext(),s+j,Toast.LENGTH_LONG).show();

                  }
              }            
            catch(JSONException e)
             {
                    Log.e("log_tag", "Error parsing data "+e.toString());
                }
4

2 に答える 2

3

ここを見て:for(int i=0;i<=jArray.length();i++)

ループは、i=jArray.length()これが一度は頻繁すぎる場合でも実行されます。

ループをに変更します

for(int i=0;i<jArray.length();i++)
于 2013-01-05T10:31:15.313 に答える
1

forループを以下のコードに変更します

  for(int i=0;i<jArray.length();i++)
              {
                        JSONObject json_data = jArray.getJSONObject(i);


                // list1.add(json_data.getString("id"));
                        int s=json_data.getInt("id");
              j=json_data.getString("name");


             db.open();
          db.inserttable1(s,j);

               Toast.makeText(getBaseContext(),s+j,Toast.LENGTH_LONG).show();

              }
于 2013-01-05T10:30:48.510 に答える