【问题标题】:Sorting a Json object array list in an expandable list view在可扩展列表视图中对 Json 对象数组列表进行排序
【发布时间】:2014-10-04 00:35:51
【问题描述】:

我正在使用 Json 对象数组列表来显示数据。现在我想使用一个可扩展的列表视图,其中数据根据对象中的日期进行分类。如何根据日期对子列表进行分类。

json 对象由接载日期和乘客详细信息组成。我想排序并制作一个可扩展的列表视图,其中包含主列表中的日期和按日期排序的子列表中的乘客详细信息。

有些对象的预订日期相同,因此需要将它们归为一个。

这是 json 对象:

【问题讨论】:

  • 你从哪里得到 json 对象?
  • 快速提问:你尝试过什么?请发布一些代码。
  • 您只需要使用 Comparator 对您的 ArrayList 进行排序。如果您需要示例,请发布您拥有的一些代码和 json 字符串
  • 我会发布 json 代码。我们如何使用日期进行排序?我想从现有的arraylist 创建一个新的对象数组列表。 :(

标签: android json expandablelistview


【解决方案1】:

我不完全确定您在问什么,但是如果您尝试对以下形式的 JSON 对象数组进行排序:[{},{},..,{}] 那么您可以使用 JavaScript 中构建的 Array.sort 方法,然后传入一个比较函数,描述如何按日期对对象进行排序。

例如:

假设你有一个这样的对象:

var people = [
{
  "name": John,
  "birthday": new Date(1990, 8, 10);
},
{
  "name": Mark,
  "birthday": new Date(1991, 10, 17);
},
{
  "name": David,
  "birthday": new Date(1991, 7, 26);
}
];

现在要对该数组进行排序,您只需执行以下操作:

people.sort(function(a,b) {
  return a.birthday - b.birthday;
});

现在people 数组将按日期排序。

有关更多信息,请参阅此Mozilla Doc

【讨论】:

  • 抱歉问题不清楚。实际上正在访问 A json 对象并将其存储在数组列表中。它包括接送日期和乘客详细信息。我想排序并制作一个可扩展的列表视图,其中包含主列表中的日期和子列表中的乘客详细信息,按日期排序。现在反倒你帮忙??
  • 我在安卓平台上
  • 如果你在 Android SDK 中使用 webview,你应该能够只使用 JavaScript 来做你想做的事,这可能会更好,因为你使用的是 JSON 对象。无论哪种方式,我都会添加另一个可能有帮助的答案。
【解决方案2】:

我对 Android SDK 不太熟悉,但如果您只需要按日期对包含 JSON 对象的 ArrayList 进行排序,我可以在这部分为您提供帮助。

我会让 ArrayList 中的对象使用 tutorial 解析您的 JSON,并且 然后使用解析的日期在您的对象中创建一个 Date 字段,然后让该对象实现 Comparable 接口,如tutorial 中所述。然后就可以使用Collections.sort(<list>)对列表进行排序了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多