我想按一个值对JSONArray排序并返回排序后的数组

时间:2019-04-17 17:58:05

标签: java json

这是我的第一个使用JSON的程序。它几乎完成了,只需要按“ updated_at”值排序,然后以“名称” +“ updated_at”的形式返回排序结果。任何人都可以帮助我/编写代码吗? 我该怎么办?

public class Main {

public static void main(String[] args) throws Exception {

    ArrayWithAllRepos arrayWithAllRepos = new ArrayWithAllRepos();

    String dataFromPage1 = URLReader.readUrl(AllegroURL.URL_1);
    String dataFromPage2 = URLReader.readUrl(AllegroURL.URL_2);
    String dataFromPage3 = URLReader.readUrl(AllegroURL.URL_3);

    JSONArray jsonArrayWithDataFromPage1 = new JSONArray(dataFromPage1);
    JSONArray jsonArrayWithDataFromPage2 = new JSONArray(dataFromPage2);
    JSONArray jsonArrayWithDataFromPage3 = new JSONArray(dataFromPage3);

    arrayWithAllRepos.addToJsonToArray(jsonArrayWithDataFromPage1);
    arrayWithAllRepos.addToJsonToArray(jsonArrayWithDataFromPage2);
    arrayWithAllRepos.addToJsonToArray(jsonArrayWithDataFromPage3);

    arrayWithAllRepos.printArray(arrayWithAllRepos.getJsonArray());
}

}

public class AllegroURL {

public static final String URL_1 = "https://api.github.com/users/allegro/repos?pagelen=1000&page=1";
public static final String URL_2 = "https://api.github.com/users/allegro/repos?pagelen=1000&page=2";
public static final String URL_3 = "https://api.github.com/users/allegro/repos?pagelen=1000&page=3";

}

1 个答案:

答案 0 :(得分:0)

我不知道类ArrayWithAllRepos,但是您可以创建Comparator来获取两个json对象,并将它们与该值进行比较(您可以在google中看到很多示例,这里是一个{ {3}})

并在集合上使用.stream().map()方法,以更改输出(同样,您可以在google中看到很多示例,这里是一个https://www.geeksforgeeks.org/comparator-interface-java/

如果您的收藏集不支持stream(),则可以做一个简单的操作,并使用您的值创建新的json。