일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- PushNotification
- 정규표현식
- GitvsGithub
- 플로우 차트
- APNS
- github
- Regex
- JSONSerialization
- 순서도
- 애플
- xcode
- git
- 플로우차트
- flow chart
- 스위프트
- 깃허브
- 정규식
- github란
- Git과 Github차이점
- git이란
- OS
- 백준
- swift
- ios
- git사용법
- 깃
- UIViewController
- 계산기
- flowchart
- 흐름도
- Today
- Total
Diana의 iOS 개발일기
[swift 함수정리] - JSONSerialization 클래스 본문
1. JSONSerialization
개인적으로 특정 서버에 HTTPRequest를 사용하여 로그인하여 그 계정에 해당하는 데이터를 HTTPResponse를 사용하여받아올 일이 생겼는데요, 이때 데이터의 Request와 Response를 JSON 형태로 하게 되었고, JSONSerialization이라는 클래스를 사용하며 용도가 궁금해졌습니다.
정의를 검색해보니 아래와 같이 나왔고 이를 간단히 해석해보면,
JSONSerialization은 주어진 object가 JSON 형태의 데이터로 변경이 가능한지를 알려주며 이를 위해서는 몇가지 속성이 필요하다고 하네요.
그 중 제게 필요한 정보는 모든 object들은 NSString, NSNumber, NSArray, NSDIctionary 또는 NSNull 형태여야 한다 라는 구문이였습니다.
저는 특정 계정에 대한 데이터들을 입력받은 뒤 이 데이터들을 아래와 같이 딕셔너리 형태로 변경해주었고
//요청할 json 형식
let param = ["mem_id": mem_id, "mem_pw": mem_pw, "user_cellphone_no": user_cellphone_no, "user_agent": user_agent, "push_id": push_id]
let paramData = try! JSONSerialization.data(withJSONObject: param)
JSONSerialization의 function중 하나인 data를 사용하여 해당 딕셔너리 데이터 값을 JSON형태로 변경해주었습니다.
data function에 대한 설명은 아래와 같습니다.
이후 HTTP 통신인 만큼, 가지고 있는 데이터들을 HTTP Body에 넣고, 헤더에는 따로 주어진 값을 요청하여 로그인을 시도하였습니다.
이때 사용한 클래스는 URLRequest와 URLSession이네요!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = paramData
//헤더 설정
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
요청 형식은 POST로 하였습니다.
그리고 헤더를 요청할 때 찾아보니까 application/json이라는 value를 통해서 json형태의 값을 요청하고 있음을 나타내 주어야 오류가 뜨지 않는다고 합니다.
'Swift > Swift' 카테고리의 다른 글
[Swift] - 정규표현식(Regex) (1) | 2022.04.10 |
---|---|
[Swift 정리] - CustomStringConvertible (1) | 2021.09.07 |
[swift 함수정리] - NSExpression, replacingOccurrences 등 (0) | 2021.04.18 |