오늘도 배우자!

귀찮음에 배움을 멀리하지 않기를...

Develop/Android

JSON 개념 이해

리다양 2017. 2. 11. 19:15

이제 서버와 통신하는 방법을 배웠으니, 오늘은 서버와 주고받는 데이터에 대해서 공부를 해보겠다.

보통 Server(Back End) 개발자와 Client(Front End) 개발자가 서로 통신에 대해서 이야기를 할때 대부분 JSON을 사용하여 통신을 한다.


JSON의 형태는 Object를 Array형태로 담아서 전송하는 것 인데, 이렇게만 이야기 하면 느낌이 오지 않을테니 직접 보면서 이해를 해보도록 하자.


 

1. JSON 형태



요렇게 생긴 녀석으로 설명을 하도록 하겠따...

우선 {} 요걸로 묶인 애들이랑, [] 요걸로 묶인 애들이 보인다. 

'어떤 차이가 있길래 이렇게 다르게 묶을까?' 하는 의문을 시작으로 이야기를 풀어나가려고 한다.


눈치가 빠른 사람들은 알아봤겠지만, {} 요녀석은 하나의 객체를 나타내는 녀석이고, [] 요녀석은 {}로 묶인 객체들을 배열(Array)로 묶어서 나타낼 때 

사용한다.

이제 살짝 JSON의 형태(Form)에 대해서 이야기를 꺼내봐야겠다.

JSON에는 크게 2가지의 폼이 있는데, 하나는 JSONObject, 또다른 녀석은 JSONArray이다.


1) JSONObject

예시에서 보면 {}로 묶인 애들이 모두 JSONObject라고 할 수 있다.

전체적으로 하나의 JSONObject속에 student, professor의 변수가 존재하고 -> student, professor 각각의 변수 속에 []로 묶여서 배열을 형성하고있는

{} 요녀석들 하나하나가 다 JSONObject이다.


그리고 주요 포인트는 Name(key) : Value 형태로 변수들을 저장하여 객체에 보관한다.

살짝 Class 만들어서 저장해두는거랑 비슷하다고 느끼면 요거는 이해했다고 보믄댄다... 


2) JSONArray

[]로 묶인 애들이 JSONArray이다.

student와 professor 의 변수에 들어있는 것이 JSONArray이며, 각각 3개의 JSONObject를 지니고 있는 JSONArray이다.


***** 정리 *****

{} == JSONObject, [] == JSONArray


2. JSON 사용법


코드부터 봐야 뭔가 이해가 되겠찌???



주석을 보면 대충 이해가 가겠지만 다시 한번 더 설명을 한다아~~~


앞서 {}로 묶이면 JSONObject, []로 묶이면 JSONArray라고 말한 내용에 따라서

위의 전체 JSON코드가 시작이 {} 로 되었으니 JSONObject로 전체 소스를 받아준다.

그 다음 student, professor key는 []로 묶인 JSONArray이니 JSONArray로 받아주고

JSONArray 내부에 있는 배열들은 {}로 묶인 애들이니 JSONObject로 로드해주는데 배열이니까 index로 불러서 가져온다.(배열이니 0 부터 시작)


마지막으로 {} 내부의 key값을 불러서 데이터 형에 맞게 String형태로 받아주고 원하는 부분에서 불러서 사용하면된다.


Log에 찍힌 값들을 아래에 첨부하고 글을 마치도록 하겠다.