2013-06-13 2 views
0

Im используя JSON для синтаксического анализа данных,Струнные содержимое массива утративших за исключением последнего индекса

{ 
"userDetails": [ 
    { 
     "id": "186", 
     "username": "manoj", 
     "status": "1" 
    }, 
    { 
     "id": "189", 
     "username": "anu", 
     "status": "1" 
    }, 
    { 
     "id": "190", 
     "username": "manojsoyal", 
     "status": "1" 
    }, 
    { 
     "id": "191", 
     "username": "mohit", 
     "status": "1" 
    }, 
    { 
     "id": "192", 
     "username": "micky", 
     "status": "1" 
    }, 
    { 
     "id": "193", 
     "username": "preet", 
     "status": "1" 
    }, 
    { 
     "id": "194", 
     "username": "mohit", 
     "status": "1" 
    }, 
    { 
     "id": "195", 
     "username": "mohit", 
     "status": "1" 
    }, 
    { 
     "id": "196", 
     "username": "harold", 
     "status": "1" 
    }, 
    { 
     "id": "197", 
     "username": "sukhi", 
     "status": "1" 
    }, 
    { 
     "id": "198", 
     "username": "harold2", 
     "status": "1" 
    }, 
    { 
     "id": "199", 
     "username": "sukhi", 
     "status": "1" 
    }, 
    { 
     "id": "200", 
     "username": "neha", 
     "status": "1" 
    }, 
    { 
     "id": "201", 
     "username": "jay", 
     "status": "1" 
    }, 
    { 
     "id": "202", 
     "username": "qwe", 
     "status": "1" 
    } 
] 

}

и это мой код

общественного класс MainActivity расширяет активность {

final static String URL = "this is the url"; 

String appUsernames[] = null; 
String appUserIDs[] = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    JSONParser jParser = new JSONParser(); 
    JSONObject json = jParser.getJSONFromUrl(URL); 

    try { 
     JSONArray userDetails = json.getJSONArray("userDetails"); 
     for (int i = 0; i < userDetails.length(); i++) { 
      JSONObject c = userDetails.getJSONObject(i); 

      String name = c.getString("username"); 
      String id = c.getString("id"); 

      appUsernames = new String[userDetails.length()]; 
      appUserIDs = new String[userDetails.length()]; 

      appUsernames[i] = name; 
      appUserIDs[i] = id; 

      Log.d("First", appUserIDs[i] + ": " + appUsernames[i]); 

     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

    for (int i = 0; i < appUserIDs.length; i++) { 
     Log.d("Second", appUserIDs[i] + ": " + appUsernames[i]); 
    } 
} 

на моем первом log.d массив строк не пуст. Но во втором log.d он выглядит как null, за исключением последнего индекса строкового массива. Что происходит? Пожалуйста, помогите мне.

ответ

0
appUsernames = new String[userDetails.length()]; 
appUserIDs = new String[userDetails.length()]; 

шаг создание массивов вне для цикла

try { 
     JSONArray userDetails = json.getJSONArray("userDetails"); 
     appUsernames = new String[userDetails.length()]; 
     appUserIDs = new String[userDetails.length()]; 
     for (int i = 0; i < userDetails.length(); i++) { 
      JSONObject c = userDetails.getJSONObject(i); 

      String name = c.getString("username"); 
      String id = c.getString("id"); 

      appUsernames[i] = name; 
      appUserIDs[i] = id; 

      Log.d("First", appUserIDs[i] + ": " + appUsernames[i]); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

большое спасибо! Вы спасли меня. Большое спасибо. – HaroldCORP

+0

приветствуются – Blackbelt

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