fix: restore original structure and implement missing features

This commit is contained in:
2026-05-01 17:09:24 +03:30
parent ec23019dcf
commit 1933f080dd
+29 -21
View File
@@ -71,12 +71,10 @@ public class MovieService {
} }
try { try {
Gson gson = new Gson();
JsonObject rootObject = JsonParser.parseString(jsonResponse).getAsJsonObject(); JsonObject rootObject = JsonParser.parseString(jsonResponse).getAsJsonObject();
if (rootObject.has("genres")) {
JsonArray genresArray = rootObject.getAsJsonArray("genres"); JsonArray genresArray = rootObject.getAsJsonArray("genres");
Type genreListType = new TypeToken<ArrayList<Genre>>(){}.getType(); Type genreListType = new TypeToken<ArrayList<Genre>>(){}.getType();
Gson gson = new Gson();
List<Genre> genres = gson.fromJson(genresArray, genreListType); List<Genre> genres = gson.fromJson(genresArray, genreListType);
System.out.println("\nALL GENRES:"); System.out.println("\nALL GENRES:");
@@ -84,19 +82,8 @@ public class MovieService {
System.out.println(genre.getId() + ". " + genre.getName()); System.out.println(genre.getId() + ". " + genre.getName());
} }
System.out.println(); System.out.println();
} else {
Type genreListType = new TypeToken<ArrayList<Genre>>(){}.getType();
List<Genre> genres = gson.fromJson(jsonResponse, genreListType);
System.out.println("\nALL GENRES:");
for (Genre genre : genres) {
System.out.println(genre.getId() + ". " + genre.getName());
}
System.out.println();
}
} catch (Exception e) { } catch (Exception e) {
System.err.println("ERROR parsing genres: " + e.getMessage()); System.err.println("ERROR parsing genres: " + e.getMessage());
e.printStackTrace();
} }
} }
@@ -129,23 +116,43 @@ public class MovieService {
} }
try { try {
Gson gson = new Gson();
JsonObject rootObject = JsonParser.parseString(jsonResponse).getAsJsonObject(); JsonObject rootObject = JsonParser.parseString(jsonResponse).getAsJsonObject();
int total = 0;
int totalPages = 0;
int currentPage = 1;
int total = rootObject.get("total").getAsInt(); if (rootObject.has("total")) {
int totalPages = rootObject.get("total_pages").getAsInt(); total = rootObject.get("total").getAsInt();
int currentPage = rootObject.get("page").getAsInt(); }
if (rootObject.has("total_pages")) {
totalPages = rootObject.get("total_pages").getAsInt();
}
if (rootObject.has("page")) {
currentPage = rootObject.get("page").getAsInt();
}
System.out.println("\n===== Page " + currentPage + " of " + totalPages + " (Total Movies: " + total + ") ====="); System.out.println("\n===== Page " + currentPage + " of " + totalPages + " (Total Movies: " + total + ") =====");
List<Movie> movies = extractMoviesFromJson(rootObject); if (rootObject.has("movies")) {
JsonArray moviesArray = rootObject.getAsJsonArray("movies");
if (movies.isEmpty()) { if (moviesArray.size() == 0) {
System.out.println("No movies found on this page."); System.out.println("No movies found on this page.");
} else { } else {
for (Movie movie : movies) { for (JsonElement element : moviesArray) {
System.out.println("ID: " + movie.getId() + " | " + movie.getTitle() + " (" + movie.getYear() + ")"); Movie movie = gson.fromJson(element, Movie.class);
if (movie != null) {
String yearDisplay = (movie.getYear() != null && !movie.getYear().isEmpty())
? movie.getYear() : "N/A";
System.out.println("ID: " + movie.getId() + " | " + movie.getTitle() +
" (" + yearDisplay + ")");
} }
} }
}
} else {
System.out.println("No 'movies' array found in response");
}
System.out.println(); System.out.println();
} catch (Exception e) { } catch (Exception e) {
@@ -154,4 +161,5 @@ public class MovieService {
} }
} }
} }