티스토리 뷰

반응형

안녕하세요! 오늘은 정말 왕왕초보 쌩초보를 위한 JSON Parsing을 배워볼거에요. (참고로 저도 왕초보임)

정말 하나하나 배워가 봅시다. 이 글을 좀 나눠서 올리는게 좋을 것 같아요 ㅎㅎ


이번 부스트캠프 과제가 JSON 파싱이었는데, 처음 해볼려니까 어렵더라구요..뭔가 잘 안되는 것 같기도하고 

들리는 말로는 엄청 쉽다는데..나는 왜 안쉬운 것 같지..(결국 여러 일이 겹쳐서 부스트캠프 지원은 못했다ㅠㅠ)

허허...


지금 혹시 JSON이 처음이시고, 정말 아무것도 모르겠고 그러신가요?? 이 글을 한번만 정독하시면 

JSON에 대해 대충 감이 오실겁니다. 한번 읽어보세요 ㅎㅎㅎ

제가 저번글에서  잘 아는 사람일수록 쉽게 설명하고, 잘 모르는 사람일수록 어렵게 설명한다.  라고 말씀드렸죠.

저도 JSON에 대해 완전 잘알고 JSON 고수고 이런건 아니에요. 하지만, 제가 어려워봤으니 어느부분이 어렵고 다가가기 힘든지 저도 잘 압니다. 

이번글은 정말 정말 쉽게 설명할거에요. 누구든지 이해할 수 있게요! XD



 JSON




일단 JSON파싱을 하려면 JSON이 뭔지 알아겠죠?

JSON은 JavaScript Object Notation의 약자에요. 줄여서 JSON. 우리말로는 "제이슨"이라고 하죠.

왜 다들 JSON, JSON거리는 걸까요? 이걸 왜 파싱해? 



JSON은 "네트워크를 통해 데이터를 주고받는 데 자주 사용되는 경량의 데이터 형식"이에요.  

더이상 어렵게 말하지 않겠습니다...왜냐면 왕초보를 위한 글이기 때문 ㅎ_ㅎ

JSON에 대해 이론적으로 더 알고싶다! 하시는 분들은 여기에 가시면 자세하게 설명되어 있답니다. 



지금 이 글을 보시는 분들중에 JSON이 어떻게 생긴지 아시는분도, 아닌분들도 계실거에요.

(JSON Parsing으로 들어오셨을테니..아실지도)


JSON은 바로


이런식으로 생겼답니다. 

이런식으로 데이터를 저장하는거죠. 


저도 JSON에 대해 완벽하게 아는건 아니지만, 만약 정말 초보시라면

이 JSON이 어떻게 이루어져있는지 아는것이 배우는데 큰 도움이 될 거라고 생각해요.

이 JSON이 어떻게 되어있구나~~를 알게된다면, 코딩하는데도 훨씬 쉬울겁니다.

그럼 같이해볼까요?


음...위키백과에 있는 간단한 JSON예제를 가져와볼게요.


{

"이름": "테스트",

"나이": 25,

"성별": "여",

"주소": "서울특별시 양천구 목동",

"특기": ["농구", "도술"],

"가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},

"회사": "경기 수원시 팔달구 우만동"

}


자. 먼저 JSON은  name - value 형태의 쌍으로 이루어져있어요.  

예를들어 "나이"가 name이고 value가 25인거죠.

이때, name인 애들은 무조건 String이기때문에 반드시 큰따옴표로 묶어줘야한답니다. 

만약 value도 String이라면, 큰따옴표로 묶어줘야겠죠? 하지만 25는 String이 아니기 때문에 큰따옴표로 안묶어준 것입니다.


이제 JSON이라는 큰 숲을 본거에요. 이제 나무들을 보러가봅시다.



자, 첫번째 줄. { <- 중괄호로 시작되네요. 

이 중괄호의 의미는, 이제 객체(Object)가 나올거야! 라는 소리입니다. 

JSON에서의 객체는, 위에서 말한 name-value의 쌍의 집합입니다. 

다시 한번말하지만, 여기서 name은 반드시 String이며, value는 기본 자료형이거나 배열, 객체입니다. 또한, 각 쌍들은 쉼표(,)로 구분돼요. 

또한 name 과 value는 콜론(:)으로 이어져있습니다. 

"나이" : 25 

이렇게요.

또한 쉼표로 각 쌍들이 구분되어 있는 것. 보이시죠?ㅎㅎ


가장 첫줄에 {

그리고 가장 마지막줄에 }. 즉 객체가 하나 나왔네요. 

그 객체안에 name-value의 쌍이 있는 것입니다. 


그런데, 잘 보면 

"특기": ["농구", "도술"],


이부분, 대괄호가 나왔네요..?

한번 살펴봅시다.


JSON에서 대괄호([])의 의미는 "배열"을 의미해요. 

배열의 각 요소는 저기 예제처럼 기본 자료형(String)이어도 되고, 배열, 객체여도 괜찮아요.

배열안에 배열..방금 배열은 []로 나타낸다며..?또..배열안에 객체요?...JSON에서 객체는 위에서 {}로 나타낸댔는데..이 두개가 배열안에 들어가도 되나요..?


네! 됩니다. 다음 예제를 보실까요? 

[ 10, {"v": 20}, [30, "마흔"] ]

자, 대괄호( [ )로 시작했으니 이건 배열을 나타내는 것이겠네요. 이 안에는 기본자료형(10), 객체 ({ "v" : 20 }) , 배열([30,"마흔])이 들어갈 수 있는것이죠!

주의하실점은 객체는 반드시 name-value의 쌍이라는 것. 잊지마세요.


또한, 

"특기": ["농구", "도술"],

위에서 제가 뭐랬죠?

이 특기 쌍 또한 {}안에 있으니 name-value의 쌍입니다.

name에는 String이 들어갔는데, value에는 배열이 들어왔네요?

제가 위에서 언급했다시피,

"여기서 name은 반드시 String이며, value는 기본 자료형이거나 배열, 객체입니다. 또한, 각 쌍들은 쉼표(,)로 구분돼요."

value는 배열, 또는 객체여도 됩니다. 우리는 지금 value가 배열인 것을 본거죠.


{

"이름": "테스트",

"나이": 25,

"성별": "여",

"주소": "서울특별시 양천구 목동",

"특기": ["농구", "도술"],

"가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},

"회사": "경기 수원시 팔달구 우만동"

}

자, 그럼 여기서 value가 "객체"인 것은 무엇일까요?

네!!맞습니다. 객체는 {} 중괄호를 사용한댔죠? 


"가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},


이부분이 value로 객체를 사용한 부분이 되겠네요.

중괄호로 시작했으니까!!!XD


자. 잊어버리시면 안돼요. JSON에서 객체는 뭐라구요?

"name-value쌍들의 집합"입니다. 무조건 쌍들로 나타나야해요. 또한, 그 쌍들은 쉼표로 구분되어야 합니다.

자 한번 보세요! 잘 나와있나요? 



네. 잘나와있는것 같아요. 

각 name은 큰따옴표로 잘 묶여있고,

 value도 있고, 

name-value가 콜론으로 잘 이어져있고,

 각 쌍들이 쉼표로 잘 구분되어있네요.



이제 여러분은 JSON이 어떻게 이루어졌는지 이제 다 아는거에요!!!!!XD

축하드려요. 

그럼 위에서 했던 질문. 

이걸 왜 파싱해?

간단하죠. 저희는 이렇게 JSON형태로 온 데이터들을 파싱, 음..데이터를 뽑아낸다고 말하는게 좋을까요?

저 형태로는 저 데이터들을 이용할 수 없으니까요. 

우리는 저기서 데이터들을 뽑아서 

아 이름이 테스트고, 나이가 25고.. 배열 또는 딕셔너리 형태로 저장해야 저 데이터들을 쓸 수 있겠죠?

그래서 다들 JSON 파싱 파싱 그러는거랍니다. 



음.. 어떠셨나요. JSON에 대해서 조금 아실 것 같나요?

만약, 정말 이해가 가지 않는 부분이라던가 제가 틀린부분이있다면 

PC화면에서 볼 수 있고, 오른쪽하단에 위치한


채널 서비스를 이용해주세요.

정말 5분안에는 반드시 봅니다. 

마구마구 질문해주세요. 

ㅎㅎ JSON Parsing 2탄으로 돌아올게요!! 도움이 되었으면 좋겠어요 XD

반응형

'공부' 카테고리의 다른 글

P와 NP의 개념  (41) 2017.06.21
파일/디렉토리 접근제어(Permission)  (0) 2017.06.20
main..return 0?1?  (0) 2017.06.19
네트워크? Http?  (0) 2017.06.16
Git ) 내 repo 클론해서 그대로 쓰고싶다!!!  (0) 2017.06.14