[Android] 네트워킹 2
지난 시간에는 소켓을 사용한 네트워킹에 대해 배웠다. 이번에는 JSON 데이터를 다뤄 활용해보자.
JSON : JavaScript Object Notation
클라이언트와 서버가 좀 더 가볍게 데이터를 주고받기 위해 도입됐다.
소켓 통신에서는 byte stream 혹은 char stream으로 데이터를 주고받았는데, 이게 가능한 이유는 통신하는 대상끼리 서로 약속이 되어 있기 때문이다. 이렇게 진행되면 데이터 수는 줄일 수는 있지만 문제가 발생한다.
요즘은 기술의 발전으로 인해 텍스트 기반으로 통신을 진행하는게 가능해졌다. 여기서 xml과 JSON 형식의 데이터가 주목받고 있고, 데이터를 더 가볍게 주고받을 수 있는 JSON 형식의 데이터가 많이 쓰이고 있다. 프로그래밍 언어에 상관없이 넓게 사용할 수 있다는 장점이 있다. (문법은 JavaScript를 사용하지만 텍스트 format이기 때문)
JSON 데이터에 대해 알아보자.
1. JSON 데이터는 JavaScript 객체 / Java 객체로 변환해서 사용할 수 있다.
2. 이름 / 값 pair로 존재한다. ex.) {"first name" : "asdf", "last name" : "qwer"}
3. 데이터들은 , 로 구분함.
4. 대괄호를 사용해서 분류함.
5. JSON 배열을 사용할 수 있음
ex.)
{} 를 단위로 객체를 구분함
위와 같이 작성했을 때 데이터에 접근하는 방법.
웹사이트에서도 JSON데이터로 정보를 제공하는 경우가 많다.
영화 정보를 제공하는 웹사이트를 통해서 사이트가 제공하는 JSON데이터를 가져오자.
사이트에서 데이터를 요청할 때는 몇 가지 양식이 있다.
위의 양식에 맞춰서 데이터를 요청한다. 원하는 날짜 / 순위 등등.. 여러 가지 기준을 설정해 데이터를 가져올 수 있다.
데이터를 받을 때는 위와 같은 형식으로 받게 되는데, 이런 데이터를 어떻게 처리할까?
Gson을 통해 데이터를 처리한다.
JSON 데이터를 받아서 Java 객체로 변환하는 역할을 한다.
Gson을 사용하려면 위와 같이 추가해 줘야 함. G 는 google 이였음..
영화 정보를 가지고 있는 클래스인 MovieList를 정의하자.
JSON데이터에 포함된 정보인 boxofficeType / showRange / dailyBoxOfficeList 도 멤버 변수로 정의해준다. 이 때 dailyBoxOfficeList는 배열로 선언한다.
영화에 대한 정보를 담고 있는 클래스도 만들어 줘야 한다.
Gson을 사용해서 사이트의 정보를 가져오고, 자바에서 다룰 수 있는 객체의 형태로 바꿔준다.
인터넷에 접근하기 위해서는 위의 코드를 추가해야 한다.
위와 같이 영화 정보를 확인할 수 있는 앱을 만들 때 스크롤 기능을 구현하려면 위의 코드를 사용해야 한다.
'Mobile > Android' 카테고리의 다른 글
[Android] 채팅 어플 만들기 (2) | 2022.01.02 |
---|---|
[Android] 네트워킹 1 (0) | 2021.12.05 |
[Android] 내용 제공자 (Content Provider) (0) | 2021.11.29 |
[Android] 모바일 데이터베이스 (0) | 2021.11.21 |
[Android] 음악 재생 플레이어 만들기 (0) | 2021.11.21 |
댓글
이 글 공유하기
다른 글
-
[Android] 채팅 어플 만들기
[Android] 채팅 어플 만들기
2022.01.02 -
[Android] 네트워킹 1
[Android] 네트워킹 1
2021.12.05 -
[Android] 내용 제공자 (Content Provider)
[Android] 내용 제공자 (Content Provider)
2021.11.29 -
[Android] 모바일 데이터베이스
[Android] 모바일 데이터베이스
2021.11.21