오늘은 iOS앱 개발에서 네트워크 통신시 필수로 알아야 할 JSON(Java Script Object Notation)에 대해 알아 보겠습니다.
JSON은 자바스크립트에서 인스턴스의 속성을 표현하기 위해 사용한 데이터 구조로, 데이터가 작고 간결해 모바일 앱에서 데이터를 주고 받을 때 많이 사용되고 있습니다.
그래서 최근에는 앱과 연동하는 API 서버는 주로 JSON 형태로 테이터를 내려주기 때문에 필수로 알아 두어야 한다고 생각합니다.
JSON 구조를 한 번 살펴 보겠습니다.
JSON 객체는 { 로 시작하여 } 로 끝납니다. 이 괄호 사이에 키와 값이 쌍을 이루어 들어가며, 이 구조는 Swift의 딕셔너리와 구조가 비슷합니다.
{
"name" : "홍길동",
"age" : 30,
"height": 175,
"gender": "Male"
}
JSON에서는 Swift 딕셔너리와 다르게 값에는 다양한 형식이 저장 될 수 있습니다.
또한 리스트 형태로 JSON데이터를 정리하고 싶다면, Array(배열)구조를 시용합니다. Array하위에 JSON 배열이 포함 될 수도 있고, JSON객체를 나열할 수도 있습니다.
예시.
[
{ "name : "홍길동",
"age" : 30,
"height" : 175,
"gender" "Male"
},
{ "name" : "에릭",
"age" : 28,
"height" : 180,
"gender" : "Male"
}
]
이렇게 서버나 네트워크상에 있는 JSON 데이터를 객체형태로 Decoding하기 위해서는 저희가 직접 동일한 구조의 형식을 만들어 줘야 하며, 주로 구조체나 클래스 형식을 사용합니다. 주의할 사항은 형식에 Codable protocol을 채용해야 합니다.
추가로 iOS 에서는 JSONDecoding시 URLSession과 Alamofire를 주로 사용합니다.
'iOS' 카테고리의 다른 글
iOS - Defer문 (0) | 2020.05.07 |
---|---|
iOS - Closure 최적화 (0) | 2020.04.30 |
iOS - ARC, Weak, Unowned (0) | 2020.04.11 |
iOS - Cocoa Pods (0) | 2020.04.09 |
iOS - Custom Fonts (0) | 2020.04.01 |