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 回答