Implement Bonus exercise - movie details
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user