Я хочу отсортировать JSONArray по одному значению и вернуть отсортированный массив

#java #json

#java #json

Вопрос:

Вот моя первая программа, использующая JSON. Он почти завершен, его нужно отсортировать только по значению «updated_at», а затем вернуть отсортированный результат в виде «name» «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=1000amp;page=1";
public static final String URL_2 = "https://api.github.com/users/allegro/repos?pagelen=1000amp;page=2";
public static final String URL_3 = "https://api.github.com/users/allegro/repos?pagelen=1000amp;page=3";
  

}

Комментарии:

1. Пожалуйста, удалите код, не связанный с вашим вопросом.

Ответ №1:

Я не знаю класс ArrayWithAllRepos , но вы можете создать Comparator , который получает два объекта json, и сравнить их с этим значением (вы можете увидеть много примеров в Google, вот один https://www.geeksforgeeks.org/comparator-interface-java /)

и используйте .stream().map() методы в коллекции, чтобы изменить вывод (опять же, вы можете увидеть много примеров в Google, вот один https://javarevisited.blogspot.com/2018/05/java-8-filter-map-collect-stream-example.html )

Если ваша коллекция не поддерживает stream() , вы можете сделать простой for и создать новый json с вашими значениями.