2013-01-05 2 views
0

Я пытаюсь получить значения из mysql и вставлять их в базу данных sqlite. Но я получаю ошибку в индексе json вне диапазона.Android json error.index вне диапазона

Это мой код. Я получаю 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()); 
       } 
+1

положить JSON ответ –

ответ

1

Измените свой цикл ниже кода

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

       } 
+0

Если я буду использовать этот цикл я

+0

, и если я только покажу их в тосте, я получаю все значения. но когда я вставляю его в sqlite databse. Только одно значение вставляется –

+0

открыть базу данных за пределами цикла –

3

Посмотрите здесь: for(int i=0;i<=jArray.length();i++)

Цикл будет по-прежнему выполняться при i=jArray.length(), который когда-то тоже довольно часто.

Изменения цикл к

for(int i=0;i<jArray.length();i++) 
+0

Если я буду использовать это для цикла i < jarray.lenght() Я получаю только одну запись из mysql databse.i хочу получить все записи из базы данных mysql –

+0

Если вы можете показать все значения в Toast, но только один вставлен, то что-то с вашим кодом вставки DB кажется неправильным. – Henry

+0

Я хочу вставить значения в databse один за другим. Вот почему я использовал –

Смежные вопросы