2013-04-20 3 views
3

Я получил это JSON данные для разбора в мой Android приложения:Ошибка при анализе JSON массива

{"result":"success","source":"getPlayerNames","success":["Player1","Player2"]} 

разобрать его, я делаю так (где jsonData это строка, содержащая вышеуказанные данные) :

ArrayList<String> players; 
players = new ArrayList(); 

JSONObject json = new JSONObject(jsonData); 
JSONArray array = json.getJSONArray("success"); 

for (int i = 0; i < array.length() ; i++) 
{ 
    players.add(array.getString(i)); 
} 

Но players ArrayList еще пуста ... (размер = 0)

Почему? Не могли бы вы помочь мне ?

Спасибо!

+0

Ваш код работает очень хорошо, я сам его протестировал. Здесь нет проблем. –

ответ

0

Попробуйте изменить

players = new ArrayList(); 

к:

players = new ArrayList<String>(); 

Смотрите, если это помогает

EDIT: Понял. Рабочий код:

ArrayList<String> players; 
players = new ArrayList(); 

JSONObject json = new JSONObject(jsonData); 
JSONArray array = json.getJSONArray("success"); 

for (int i = 0; i < array.length() ; i++) 
{ 
    players.add((String)array.get(i)); 
} 
+0

Нет, все тот же ... Я думаю, что проблема заключается в разборе JSONArray, но где? – natinusala

+0

Это работает, спасибо! – natinusala

+0

Объявление дженериков и приведение к строкам являются неявными, поэтому ничего не меняют. Я бы очень сильно хотел использовать @ user1947177 использование 'getString' над' get', так как он позволяет 'org.json' выполнять некоторую проверку ошибок для вас. –

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