当前位置: 首页 > 面试题库 >

按Json Object中的某些字段排序

樊杰
2023-03-14
问题内容

我有一个包含以下对象数组的Josn文件:

{
    "tId": "Something",
    "StartTime": "05/29/2013 5:28:33 PM",
    "CompleteTime": "05/29/2013 5:28:33 PM",
    "Status": "success",
    "MachineName": "Machine",
},

我必须根据开始时间和计算机名称进行排序,并仅向用户显示这两件事。如果两个或多个任务的开始时间相同,则应根据计算机名称对这些任务的结果进行排序。我试图将解析后得到的JsonArray转换为List,然后使用自定义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());
  }
});


 类似资料:
  • 我正在尝试使用Spring-data-rest和spring-data-mongodb来公开只读资源。 我遇到的问题是,我想对我的文档有不同的看法。假设我在一份文件中有一些私人信息,我不想公开曝光。 所以我试了好几种方法。我阅读了这篇文章https://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spri

  • 问题内容: 是否可以按某个列以及RAND()对结果集进行排序? 例如: 谢谢你。 问题答案: 您正在执行的操作是有效的-它将按降序对结果进行排序,但会随机化领带的顺序。 但是,要执行所需的操作,您首先需要使用子查询来获取最新的100条记录,然后再使用外部查询对该子查询的结果进行随机排序:

  • 问题内容: 我使用GSON进行序列化时,没有找到一种方法,无法根据Gson根据字段值提供的ExclusionStrategy类从序列化中排除某些字段,因为它仅支持基于顶级类或字段属性的排除。字段属性不包括该字段的值。所以我该怎么做? 问题答案: 实现此目的的方法是为相关类创建自定义序列化程序。在允许Gson以默认方式创建JSON对象之后,请根据其值删除要排除的属性。 并在用于此类的应用程序中用于序

  • 我有一些对象的列表。我想先按一些属性和空值排序,比如在查询中: 我知道当我有字符串列表时,我可以这样做: 但是当我有一些类的对象列表时呢? 有什么建议我可以用java实现吗?

  • 在我的JPA POJO的中,我遇到了删除一些JSONObject键的问题。我只是不想让它们显示在中,同时将它们保存在POJO中,这样我就可以使用它们了。我可以设法在父实体中删除它们,但在子实体中无法这样做。下面是我在父实体中的实现。 我试图在我所有的子实体中做同样的事情。当我调用toString()时,仅在父实体中消失。它们仍然存在于儿童中。如何删除子实体中的一些键?谢谢你。

  • 运行查询后,我从MongoDB返回一个JSON值。问题是我不想返回与我的返回相关的所有JSON,我尝试搜索文档,但没有找到正确的方法。我想知道如果可能的话会怎样,如果可能的话,正确的做法是什么。示例:在数据库中 如果某个字段为用户存在,但不返回另一个字段,那么返回该字段的正确方式是什么。对于上面的示例,我想返回RMS的字段和扎克伯格的字段。这就是我试图找到的字段是否为空,但它似乎不起作用。