我有一个 Json 文件,其中包含对象数组,例如:
{
"tId": "Something",
"StartTime": "05/29/2013 5:28:33 PM",
"CompleteTime": "05/29/2013 5:28:33 PM",
"Status": "success",
"MachineName": "Machine",
},
我必须根据开始时间和计算机名称进行排序,并仅向用户显示这两件事。如果 2 个或更多任务的开始时间相同,则这些任务的结果应根据计算机名称排序。我正在尝试将解析后得到的 JsonArray 转换为列表,然后使用自定义的 collections.sort 。我的方向正确吗?如何修改 Collections.sort 中的比较器以在启动时间相同的情况下根据机器名称进行排序
JsonArray allTasks = jsonParser.parse(reader).getAsJsonArray();
ArrayList<String> list = new ArrayList<String>();
if (allTasks != null) {
int len = allTasks.size();
for (int i=0;i<len;i++){
list.add(allTasks .get(i).toString());
}
}
for (String task : list) {
// code to fetch just 2 fields from this task and then sort according to start time
}
您的排序例程将如下所示,具体取决于您如何进行 JSON/对象映射的具体情况:
Collections.sort(myObjectList, new Comparator<MyObject>() {
@Override
int compare(MyObject a, MyObject b) {
if (a.getStartTime().equals(b.getStartTime())) {
return a.getMachineName().compare(b.getMachineName());
}
return a.getStartTime().compare(b.getStartTime());
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)