package com.esoxjem.movieguide.details; import com.esoxjem.movieguide.Review; import com.esoxjem.movieguide.Video; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; /** * @author arun */ public class MovieDetailsParser { public static final String RESULTS = "results"; public static final String ID = "id"; public static final String NAME = "name"; public static final String SITE = "site"; public static final String KEY = "key"; public static final String SIZE = "size"; public static final String TYPE = "type"; public static final String AUTHOR = "author"; public static final String CONTENT = "content"; public static final String URL = "url"; public static List<Video> parseTrailers(String body) throws JSONException { ArrayList<Video> trailers = new ArrayList<>(4); JSONObject response = new JSONObject(body); if(!response.isNull(RESULTS)) { JSONArray results = response.getJSONArray(RESULTS); for (int i = 0; i < results.length(); i++) { Video video = new Video(); JSONObject videoJson = results.getJSONObject(i); if(!videoJson.isNull(ID)) { video.setId(videoJson.getString(ID)); } if(!videoJson.isNull(NAME)) { video.setName(videoJson.getString(NAME)); } if(!videoJson.isNull(SITE)) { video.setSite(videoJson.getString(SITE)); } if(!videoJson.isNull(KEY)) { video.setVideoId(videoJson.getString(KEY)); } if(!videoJson.isNull(SIZE)) { video.setSize(videoJson.getInt(SIZE)); } if(!videoJson.isNull(TYPE)) { video.setType(videoJson.getString(TYPE)); } trailers.add(video); } } return trailers; } public static List<Review> parseReviews(String body) throws JSONException { ArrayList<Review> reviews = new ArrayList<>(4); JSONObject response = new JSONObject(body); if(!response.isNull(RESULTS)) { JSONArray results = response.getJSONArray(RESULTS); for (int i = 0; i < results.length(); i++) { Review review = new Review(); JSONObject reviewJson = results.getJSONObject(i); if(!reviewJson.isNull(ID)) { review.setId(reviewJson.getString(ID)); } if(!reviewJson.isNull(AUTHOR)) { review.setAuthor(reviewJson.getString(AUTHOR)); } if(!reviewJson.isNull(CONTENT)) { review.setContent(reviewJson.getString(CONTENT)); } if(!reviewJson.isNull(URL)) { review.setUrl(reviewJson.getString(URL)); } reviews.add(review); } } return reviews; } }