Existe-t-il un moyen d'imprimer le contenu de l'API sur le serveur loc

Existe-t-il un moyen d'imprimer le contenu de l'API sur le serveur localhost ?

J'essaie d'apprendre le printemps et en même temps de construire un petit projet et j'ai rencontré un problème. Tout fonctionne comme il se doit, mais je n'arrive pas à comprendre comment utiliser le contenu de la méthode de l'API qui est imprimé dans ma console Eclipse.

Dans mon contrôleur, j'ai toutes les informations nécessaires pour utiliser la méthode spécifique de l'API. J'ai mappé l'URL en utilisant "@GetMapping("/seasons") et j'utilise un extrait de code d'une API en ligne (avec clé). Et dans le dossier VIEW (en gros, où je conserve le JSP files, exemple : seasons.jsp) J'essaie de récupérer des données à partir de la réponse de l'API.

Voici la réponse de l'API : "{"get":"seasons","parameters":[],"errors":[],"results":10,"response":[2012,2013,2014,2015,2016,2017,2018,2019,2020,2021]}"

MISE À JOUR :

Voici un code de référence :

    @GetMapping("/seasons")
public String seasons(Model theModel) throws IOException, InterruptedException {
    List<Integer> SeasonsList = new ArrayList<>();

    HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api-formula-1.p.rapidapi.com/seasons"))
            .header("x-rapidapi-host", "api-formula-1.p.rapidapi.com")
            .header("x-rapidapi-key", "5a6f44fa10msh40be2be8d20bc5bp18a190jsnb4478dcbc8f1")
            .method("GET", HttpRequest.BodyPublishers.noBody())
            .build();
    HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
    
    JSONObject seasonsObject = new JSONObject(response.body());
    for(int i = 0; i < seasonsObject.length(); i++) {
        JSONArray object = seasonsObject.getJSONArray("response");
        for(int j = 0 ; i < object.length(); j++) {
            SeasonsList.add(object.getInt(j));
            
        }
        System.out.println(object);
    }
    
    theModel.addAttribute("theSeasons", SeasonsList);
    return "seasons";
}

Et le fichier HTML :

<html xmlns:th ="http://www.thymeleaf.org">
<head>


<title>The Formula 1 Seasons are</title>


</head>

<body>
 <p th:text ="'The seasons are:  ' + ${theSeasons}"/>

</body>


</html>

Ce que je veux, c'est montrer "Les saisons sont : 2012, 2013, 2014..etc.

Et j'obtiens une erreur dans la console : "org.json.JSONException : JSONArray[10] introuvable."

Veuillez me faire savoir si vous avez besoin de détails sur mon projet.

Montrez la meilleure réponse

Ok désolé, je supprime mon message.

Pas besoin de supprimer. Juste éditez le.

J'espère que ça va maintenant. S'il y a un manque de détails quelque part, merci de me le faire savoir afin que j'en donne plus.

for (int j = 0 ; i < object.length(); j++)

J'ai compris, j'ai vu l'erreur, merci

Votre boucle interne utilise la mauvaise variable de boucle et déplace j au-delà de la fin du tableau :

// Don't do this
for (int j = 0 ; i < object.length(); j++) { // Comparing "i"; compare "j" instead

// Do this
for (int j = 0 ; j < object.length(); j++) {

Cependant, la raison pour laquelle il doit y avoir une boucle externe n'est pas claire ; vous extrayez une propriété connue d'une réponse connue ; il n'y a aucune raison pour la boucle externe AFAICT.