2015-02-18 4 views
0

я получил следующее мое приложение для Android:затмение андроида строку Jsonarray

PHP файл

<?php 
$con=mysql_connect("localhost","root",""); 
mysql_select_db("tutorial",$con); 
$r = mysql_query("select names from getdata where 1"); 
while($row=mysql_fetch_array($r)) 
{$out[]=$row;} 
print(json_encode($out)); 
mysql_close($con); 
?> 

тогда я получил следующее:

[{"0":"Sam","names":"Sam"},{"0":"Peter","names":"Peter"},{"0":"Smith","names":"Smith"},{"0":"Alfred","names":"Alfred"}] 

как "результат" STRING переменной.

Я подтверждаю, что приложение может подключаться и получать данные. НО ...

try{ 
      JSONArray jArray = new JSONArray(result); 
      int count = jArray.length(); 

      for(int i=0; i<count;i++){ 
       JSONObject json_data = jArray.getJSONObject(i); 
       temp += json_data.getString("names")+ ":"; 
      } 
      arr = temp.split(":"); 
      lv.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, arr)); 
     }catch(Exception e){ 
      System.out.println("exception"); 
     } 

этот код продолжает идти на «исключение» как я могу решить эту проблему? Большое спасибо.

+0

Что Исключение составляют ваш получать? – BlackHatSamurai

+0

Я не знаю, как проверить исключение. Я просто знаю, что он продолжает идти в код «catch {...}» –

+0

Вы можете поместить точку прерывания в строку System.out.println, запустить приложение в режиме отладки и когда приложение попадет в эту строку, проверьте значение e. Или еще лучше, 'e.printStackTrace()' будет печатать исключение в logcat. – CurlyCorvus

ответ

1

Вы используете неправильную переменную в методе split. Ваша строка, вы добавляете с сепаратором : является temp не result (это полный JSON)

Заменить

arr = result.split(":"); 

с

arr = temp.split(":"); 
+0

извините ... это мое неправильное определение –

+0

Я меняю его, но я получил тот же результат –

+0

Если это не решит вашу проблему, добавьте 'e.printStackTrace()' в блок catch и опубликуйте вывод. – Rohit5k2