가져온 영화정보를 자바객체로 변경하는 방법을 알아보자.
우리가 open api로 요청을 한 데이터는 json형식으로 데이터를 제공한다.
우리는 그 데이터를 자바에서 지원하는 gson을 통해 json파일을 받아서 자바객체에 담을 것이다.
json방식을 받기 위해서는 데이터값의 이름과 같은 형식의 변수를 만들어야 한다.
영화정보를 보면 boxofficeResult 이름 안에 boxofficeType, showRange, dailyBoxOfficeList가 들어있고,
dailyBoxOfficeList 안에 우리가 원하는 영화정보들이 들어있다.
1. 데이터를 담을 클래스를 만든다.
1.1 MovieList라는 클랙스에 boxofficeResult 라는 변수를 만든다.
public class MovieList {
private MovieListResult boxOfficeResult;
public MovieListResult getBoxOfficeResult() {
return boxOfficeResult;
}
public void setBoxOfficeResult(MovieListResult boxOfficeResult) {
this.boxOfficeResult = boxOfficeResult;
}
}
1.2 MovieListResult 클래스에 boxofficeType, showRange, dailyBoxOfficeList 변수를 만든다.
dailyBoxOfficeList 에는 영화정보가 들어가기 때문에 ArrayList타입으로 만들어 준다.
public class MovieListResult {
private String boxofficeType;
private String showRange;
private ArrayList<MovieVo> dailyBoxOfficeList = new ArrayList<MovieVo>();
public String getBoxofficeType() {
return boxofficeType;
}
public void setBoxofficeType(String boxofficeType) {
this.boxofficeType = boxofficeType;
}
public String getShowRange() {
return showRange;
}
public void setShowRange(String showRange) {
this.showRange = showRange;
}
public ArrayList<MovieVo> getDailyBoxOfficeList() {
return dailyBoxOfficeList;
}
public void setDailyBoxOfficeList(ArrayList<MovieVo> dailyBoxOfficeList) {
this.dailyBoxOfficeList = dailyBoxOfficeList;
}
}
1.3 dailyBoxOfficeList 배열에 들어갈 MovieVo를 만들어 준다. MovieVo안에는 영화정보 변수들이 들어간다.
public class MovieVo {
private String rnum;
private String rank;
private String rankInten;
private String rankOldAndNew;
private String movieCd;
private String movieNm;
private String openDt;
private String salesAmt;
private String salesShare;
private String salesInten;
private String salesChange;
private String salesAcc;
private String audiCnt;
private String audiInten;
private String audiChange;
private String audiAcc;
private String scrnCnt;
private String showCnt;
}
2. MainActivity 에서 json형식을 지금 만든 자바객체에 담아보자.
기존에는 log로 뿌린 부분을 메소드를 추가 한다.
public void onResponse(String response) {
println("응답 -> " + response);
processResponse(response);
}
3. processResponse() 메소드를 추가한다.
private void processResponse(String response) {
Gson gson = new Gson();
MovieList movieList = gson.fromJson(response, MovieList.class);
println("영화 정보의 수: " + movieList.getBoxOfficeResult().getDailyBoxOfficeList().size());
}
4. 앱을 실행시킨다.
5. 영화정보의 갯수가 보일 것이다.
두 번째 안드로이드앱 개발 [여성안심택배보관함] (0) | 2020.03.23 |
---|---|
카카오지도 hashkey 가져오기 (0) | 2020.03.18 |
영화정보조회앱 - 1. HTTP 요청 (0) | 2020.03.15 |
첫 안드로이드 개발과 등록 (0) | 2020.03.08 |
안드로이드 9 파이에서 Http 사용시 에러 (0) | 2020.02.09 |
댓글 영역