Implement Bonus exercise - movie details

This commit is contained in:
2026-05-03 23:59:27 +03:30
parent 6ad5db5311
commit b901078b61
3 changed files with 106 additions and 53 deletions
+17 -38
View File
@@ -134,46 +134,10 @@ public class MovieService {
return null;
}
/*
BONUS TODO: Display complete movie details for a given movie ID
Open this link in your browser (and check Pretty-print checkbox) to view json format:
https://api.meshcomp.ir/api/v1/movies/1
INSTRUCTIONS:
1. Call getMovieById(movieId) to get the JSON response string
2. Check if response is null (if yes, print error and return)
3. Parse the JSON string to JsonObject (inside try-catch)
4. Use Gson to extract all fields from the JSON and map them to your Movie class:
- Add missing JSON fields to your Movie class first (actors, awards, director,
imdb_id, imdb_votes, metascore, plot, rated, released, runtime, type, writer)
- Then use Gson to parse your json string
5. Print all movie details in a readable format
(PUT ALL PARSING CODE INSIDE THE EXISTING try-catch)
*/
/* EXAMPLE OUTPUT:
=======================================================================
THE SHAWSHANK REDEMPTION (1994)
=======================================================================
Rating: 9.3/10 | Votes: 1,738,596
Director: Frank Darabont
Cast: Tim Robbins, Morgan Freeman, Bob Gunton, William Sadler
Genre: Crime, Drama
Runtime: 142 min | Rated: R
Country: USA | Released: 14 Oct 1994
Plot: Two imprisoned men bond over a number of years, finding
solace and eventual redemption through acts of common decency.
Awards: Nominated for 7 Oscars. Another 19 wins & 30 nominations.
=======================================================================
*/
public void displayMovieDetails(Long movieId) {
// Step 1: Get JSON response from API
String jsonResponse = getMovieById(movieId);
// System.out.println(jsonResponse + "\n");
// Step 2: Check if we got valid data
// Step 3-5: Parse JSON and display details (PUT YOUR CODE INSIDE try-catch)
@@ -184,8 +148,23 @@ public class MovieService {
try {
// TODO: Parse jsonResponse to JsonObject
// HINT: Use JsonParser.parseString(jsonResponse).getAsJsonObject()
JsonObject moviesObj = JsonParser.parseString(jsonResponse).getAsJsonObject();
// TODO: use Gson to parse the json
// Your code here:
Gson gson = new Gson();
Movie movie = gson.fromJson(moviesObj, Movie.class);
String output = " =======================================================================\n" +
" "+ movie.getTitle() +"\n" +
" =======================================================================\n" +
" Rating: "+ movie.getImdb_rating() +" | Votes: "+ movie.getImdb_votes() + "\n" +
" Director: "+ movie.getDirector() +"\n" +
" Cast: "+ movie.getActors() +"\n" +
" Genre: "+ movie.getGenres() +"\n" +
" Runtime: "+ movie.getRuntime() +" | Rated: "+ movie.getRated() +"\n" +
" Country: "+ movie.getCountry() +" | Released: "+ movie.getReleased() +"\n" +
" Plot: " + movie.getPlot() +
"\n =======================================================================";
System.out.println(output);
} catch (Exception e) {
System.err.println("ERROR parsing movie details: " + e.getMessage());
}