여태 사용했지만 어케 사용한건지 모르는...
다른 팀원이 다 가져와준.,.. 응...
JSON!
JSON은 JavaScript Object Notation 의 약자이다.
원래 자바스크립트 언어에서 객체 속성을 표현하기 위한 방법으로 사용하기 시작한 데이터 구조인데
다른 언어들에서도 JSON을 사용하기 시작하여 지금처럼 유명해졌다
JSON은 간결하게 쉽게 데이터를 나타내는 방법 중 하나 라고 할 수 있다!
JSON에 사용되는 데이터 구조는 크게 2가지 종류로 나눠진다.
1. JSON 객체
JSON 객체는 쉽게 말해 Key : Value 로 이루어진 데이터들의 집합니다.
어디서 많이 본거같은데./. 마자여 Dictionary..
Dictionary랑 같은 성격을 띄고있슴다 ㅎ
JSON 객체는 중괄호 { 로 시작해서, 중괄호 } 로 끝나고
중괄호 사이에 Key-Value가 쌍을 이루어서 들어가는 것이다.
이때 Key-Value는 : (colon)을 이용해서 표현한다.
{
"name" : "Gahye"
}
만약 Key-Value를 더 추가하고 싶으면 ' , (comma) '를 이용해서 추가하면 된다.
{
"name" : "Gahye",
"age" : "30"
}
이게 바로 JSON 객체이다.
JSON 객체는 Swift의 Dictionary 성격을 가지고 있기 때문에, Swift에서 이 JSON 객체를 다룰 때 Dictionary 계열의 자료형을 사용한다. (Dictionary, NSDictionary, NSMultableDictionary 등등..)
Dictionary는 배열과 달리 index가 필요없이 Key에 해당하는 Value만 제대로 매칭되면 된다.
따라서 JSON 객체를 생성하고 출력했는데, 내가 생성한 Key-Value 쌍이 순서대로 되어있지 않더라도 문제가 되지 않는다.
즉 JSON 객체에서는 순서가 상관 없다!
이제 Key-Value의 타입에서 알아둬야 할 것이 있다.
위에서 생성한 Key-Value의 타입은
"name" : "Gahye" 는
문자열 : 문자열 타입이다.
이 Key-Value의 타입은 아무 타입이나 막 쓰면 안되고, 미리 지정된 타입만 쓸 수 있다.
지정된 타입이 뭐냐면
문자열 : 문자열
숫자
논리값
배열
JSON 객체
NULL
이런 것들이다. 이건 지켜야되는 타입 조건!
Key의 타입은 무조건 문자열(String)만 가능하고, Value 타입은 다양하다.
Value타입에 JSON객체 타입이 된다는 말은
{
"name" : "Gahye",
"age" : 30,
"mom" : {
"name" : "Yujin",
"age" : 60
}
}
이런게 가능하단 거다.
2. JSON 배열
JSON 객체에서 Gahye에 대한 사람 한명에 대한 정보를 담았는데
만약 여러 사람의 정보를 데이터로 만들고 싶다면
이때 사용하는게 JSON 배열 이다.
평소 사용하던 배열과 똑같이 생각하면 된다.
JSON 배열은 대괄호 [ 로 시작해서, 대괄호 ] 로 끝나고
이 대괄호 사이에 원하는 아이템을 넣어주면 된다.
[
{
"name" : "Gahye",
"age" : 30
}
]
두명의 데이터를 다루고 싶으면 JSON 객체와 똑같이 콤마를 이용해서 나열하면 된다.
[
{
"name" : "Gahye",
"age" : 30
},
{
"name" : "Cindy",
"age" : 34
}
]
배열안에 들어가는 아이템의 타입은 매우 다양한데
문자열, 숫자, 논리값, JSON 배열, JSON 객체, NULL 이런것들이 가능하다.
// 정수
[1, 3, 5, 7, 9]
// 문자열
["a", "b", "c", "d", "e"]
//하위에 JSON 배열이 포함된 경우
[
["a", "b", "c", "d", "e"],
["A", "B", "C", "D", "E"],
["가", "나", "다", "라", "마"]
]
//하위에 JSON 객체를 나열한 경우
[
{"name" : "Sodeul"},
{"name" : "Sossam"}
]
이런식으로 사용할 수 있는게 JSON 배열이다.
JSON 배열을 다룰 때 Swift는 Array 계열의 자료형을 사용한다.
배열인 만큼, index가 중요하기 때문에 JSON Object처럼 순서가 뒤바뀔 일이 없다.
이런식으로 우리가 원하는 Text 형태의 데이터를 쉽고 간단하게 만들 수 있는게 JSON이다.
'iOS (스파르타)' 카테고리의 다른 글
RxSwift 공부하기 - 2 (.. 재작성 완) (5) | 2024.10.17 |
---|---|
아악! 공부해야할것 (0) | 2024.09.19 |
파이어베이스 공부하깅 - 4 (0) | 2024.09.13 |
파이어베이스 공부하깅 - 3 (0) | 2024.09.12 |
파이어베이스 공부하깅 - 2 (1) | 2024.09.11 |