Notice
Recent Posts
Recent Comments
Link
투케이2K
20. (swift/xcode) json 생성 및 파싱 수행 - jsonObject , jsonArray 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
/*
[요약 설명]
1. json : key , value 로 이루어진 데이터 전송 포맷 형식입니다
2. jsonObject : json key, value 형태로 이루어져있습니다
3. jsonArray : 배열 형식 형태로 이루어져있습니다
*/
// [테스트 메인 함수 정의 실시]
func testMain() {
print("[Program Start]")
print("")
// ===== [json 데이터 생성 부분] =====
// 배열 데이터 생성 실시
let colorArray: Array<Any> = ["red", "yellow", 10, 20]
// Dictionary 사용해 json 데이터 생성 실시
let jsonData : [String: Any] = [
"name": "twok",
"age": 28,
"color" : colorArray // array to string
] as Dictionary
// Dictionary 데이터를 json으로 변환 실시
var jsonObj : String = ""
do {
let jsonCreate = try JSONSerialization.data(withJSONObject: jsonData, options: .prettyPrinted)
// json 데이터를 변수에 삽입 실시
jsonObj = String(data: jsonCreate, encoding: .utf8) ?? ""
} catch {
print(error.localizedDescription)
}
print("[create json data]")
print("jsonObj : " , jsonObj)
print("")
// ===== [json 데이터 파싱 부분] =====
// 딕셔너리 객체 생성 실시
var json : Dictionary<String, Any> = [String : Any]()
do {
// 딕셔너리에 데이터 저장 실시
json = try JSONSerialization.jsonObject(with: Data(jsonObj.utf8), options: []) as! [String:Any]
} catch {
print(error.localizedDescription)
}
// 정상적으로 json 데이터를 받은 경우
if(json.count > 0){
print("[parse json data]")
print("json len : " , json.count)
print("json data : " , json) // json 데이터
print("json key : ", json.keys) // json key 리스트
print("json key contains name : ", json.keys.contains("name")) // json key 포함 확인
print("json key contains sex : ", json.keys.contains("sex")) // json key 포함 확인
print("json key [name] value : ", json["name"] ?? "") // json value 확인
print("json key [age] value : ", json["age"] ?? "") // json value 확인
// for 문을 수행 해서 json array 배열 데이터 파싱
let jsonArray : Array<Any> = json["color"] as! Array<Any>
for i in stride(from: 0, through: jsonArray.count-1, by: 1) {
print("json key [color] : " , jsonArray[i])
}
}
}
[결과 출력]
[요약 설명]
/*
[요약 설명]
1. json : key , value 로 이루어진 데이터 전송 포맷 형식입니다
2. jsonObject : json key, value 형태로 이루어져있습니다
3. jsonArray : 배열 형식 형태로 이루어져있습니다
*/
반응형
'Swift' 카테고리의 다른 글
Comments