Недавно я начал работу над приложением, которое выполняет запрос на сервер и получает ответ json.String [] from ArrayList <Class>
«вещь» функционировала красиво, пока мне не пришлось внедрять новые вещи в список, и теперь у меня есть трудное время, чтобы исправить это.
Любая помощь очень ценится:
class RemoteConfig
{
// names and type must match what we get from the remote
String[] username;
ArrayList<accDetails> in_groups;
String[] in_groups_sorted;
class accDetails
{
int group_id;
String group_label;
Boolean _is_system;
}
Это лишь часть того, как начинается класс, и вот как JSON réponse выглядит следующим образом:
{
"username":[
"mike"
],
"in_groups":[
{
"group_id":2,
"group_label":"All users",
"_is_system":true
},
{
"group_id":4372,
"group_label":"Privileged User",
"_is_system":false
},
{
"group_id":4979,
"group_label":"Supervisor",
"_is_system":false
}
]
}
Проблема, что я столкнуться что я не знаю, как разбить список массивов in_groups и получить в String [] in_groups_sorted значение Group_label, если значение _is_system является ложным.
Любая помощь очень ценится.
Спасибо, Майк
После проверки ответов, чистейшая и простейшая был один обеспечивается Аббе:
public String[] groupSettings()
{
String[] levels = new String[] {};
if (remoteConfig != null && remoteConfig.in_groups != null){
for (accDetails ad: remoteConfig.in_groups)
{
if (!ad._is_system) {
levels = ArrayUtils.addAll(levels, ad.group_label); ;
}
}
}
return levels;
}
Вы разбираете json (используя JsonObject/JsonArray и т. Д.) Или вы позволяете API строить объект для вас? –
Спасибо всем за вашу помощь. Я собирался далеко задуматься, и я забыл, чтобы это было просто. Я использовал часть кода, предложенную @Abbe Resina, и она работала правильно. Другие были успешными, но это было самое простое –