ArrayList<Class>java字符串[]
我最近开始开发一个应用程序,它向服务器发出请求并获得json响应
这个“东西”运行得很好,直到我必须实现列表中的新东西,现在我很难修复它
非常感谢您的帮助:
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响应的样子:
{
"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
}
]
}
我现在遇到的问题是,如果_is_系统值为false,我不知道如何拆分in_groups数组列表并进入字符串[]in_groups_排序组标签的值
非常感谢您的帮助
谢谢,, 迈克
检查回复后,最干净、最简单的是阿贝提供的回复:
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;
}
# 1 楼答案
下面是一个使用Stream's
filter
、sorted
和map
方法的Java 8解决方案:区分了对可见性的要求,但它们可以是一行:
# 2 楼答案
如果你不想改变解析JSON的方式,你可以这样做:
让accDetails实现Comparable,然后使用Collections。按组对传递进行排序
如果你真的想要字符串[],你可以在组中迭代,添加到组中,然后使用数组排序。排序
# 3 楼答案
根据你的问题,我假设JSON已经被解析并存储在
RemoteConfig
类的in_groups
字段中。只需过滤填充in_group_sorted
字段所需的信息将以下内容添加到
RemoteConfig
类中:# 4 楼答案
迈克,让我给你点东西让你走吧。从你的问题中,我感觉到你的问题在于如何解析JSON,所以在你编写自己的解析器之前,考虑一下我刚写的下面一段代码: