2013-09-17 5 views
0

Привет У меня есть сценарий здесьитерация через JSON матрицы PHP андроида

http://myprocity.com/android/fetchthecity.php

Это возвращает массив массивов. Я хочу проанализировать это в Android и сохранить каждое значение.

Код, который у меня есть сейчас, возможно, это испорчено? Я не получаю ничего, чтобы показать

public static void refreshFeed(Activity act){ 

    ActionEngine.swamiOn = false; 

    FetchTheCityTask f = new FetchTheCityTask(act); 
    f.execute(); 

    try { 

     if (f.get() != null) { 

      JSONArray feedArr = new JSONArray(); 
      feedArr = json.getJSONArray("data"); 
      ArrayList<UserRecord> items = new ArrayList<UserRecord>(); 

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

       for(int j = 0; j < feedArr.getJSONArray(i).length(); j++) { 

        JSONObject row = feedArr.getJSONArray(i).getJSONObject(j); 
        String item = row.getString("Item"); 
        String descp = row.getString("Description"); 
        String pic = row.getString("PicPath"); 
        String time = row.getString("Time"); 
        String donatedby = row.getString("DonatedBy"); 
        String ebase = row.getString("Ebase"); 
        String cond = row.getString("Condition"); 
        String loc = row.getString("Location"); 

        items.add(new UserRecord(item,descp,pic,time,donatedby, 
          ebase,cond,loc)); 

       } 
      } 

      TheCityFragment.feedArea.setAdapter(new UserItemAdapter(act, 
        android.R.layout.simple_list_item_1, items)); 

ответ

0

Это возвращает массив массивов.

Я не думаю, что это так,

Я вижу из файла «массив объектов», так что ваш код не работает.

enter image description here

Попробуйте сделать что-то:

JSONArray json = new JSONArray(resultAsString); 
// ... 

for(int i=0;i<json.length();i++){ 
       //... 
       JSONObject row = json.getJSONObject(j); 
       String item = row.getString("Item"); 
       String descp = row.getString("Description"); 
       String pic = row.getString("PicPath"); 
       String time = row.getString("Time"); 
       String donatedby = row.getString("DonatedBy"); 
       String ebase = row.getString("Ebase"); 
       String cond = row.getString("Condition"); 
       String loc = row.getString("Location"); 
      //..   
} 

Надеется, что это поможет вам

+0

привет Максим, хорошо, так что я "получает массив объектов, как я анализирую через каждый из них ... гм, я застрял на синтаксис должен я повторяться через JSONArray или JSONObject, который возвращается из json.getJSONArray ("data"); – David

+0

см. мой пример, вы получаете 'json.getJSONArray' из своей строки, а после запуска в цикле –

+0

он дает мне тип несоответствие, когда я это делаю \t \t \t \t JSONArray feedArr = новый JSONArray (f.get()); – David

0

Вашего результата JSON, разобрано на: http://bodurov.com/jsonformatter/ показывает этот результат:

JSON Result

Я бы рекомендовал, чтобы изменить результат JSon к этому:

{"data" : [yourjsonArray]} 

Так что вам нужно инкапсулировать JSON_ARRAY внутри JSON_OBJECT, так что вы можете использовать getJSONArray("data"), чтобы получить массив.

JSONObject jObject = new JSONObject(resultstringhere); //f.get() ? 
JSONArray jArray = jObject.getJSONArray("data"); 

Надеется, что это помогает,

Reid

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