2012-12-28 17 views
17

Podczas mojej aktywności w systemie Android otrzymuję komunikat JSONArray za pośrednictwem protokołu HTTP zawierającego nazwy użytkowników. Array wygląda następująco:Sprawdź JSONArray pod kątem określonej wartości

[{"username":"Julia"},{"username":"Anja"},{"username":"Hans"},{"username":"Sophia"},{"username":"Sarah"}] 

Chcę sprawdzić w Android aktywny, czy dana nazwa już istnieje.

Jaki byłby najskuteczniejszy sposób na zrobienie tego? Czy muszę iterować w całej tablicy? .

Odpowiedz

41

używać prostych funkcji String/metoda jak

private boolean userexists(JSONArray jsonArray, String usernameToFind){ 
    return jsonArray.toString().contains("\"username\":\""+usernameToFind+"\""); 
} 
+1

miłą odpowiedź ... + 1 –

+2

można również powrócić jsonArray.toString() zawiera (usernameToFind); dla czystszego i krótszego rozwiązania. – ralphgabb

+7

Przepraszam, ale to jest i.m.o. złe rozwiązanie. Co się stanie, jeśli nazwa użytkownika zawiera częściowo inną nazwę użytkownika? Więc jeśli masz "Anja" jako nazwę użytkownika do znalezienia, ale inny użytkownik nazywa się "Anjatovic". Prowadziłoby to do niedokładnych wyników. – Thermometer

Powiązane problemy