Notice
Recent Posts
Recent Comments
Link
투케이2K
80. (ios/swift) 세부 json 데이터 생성 및 파싱 수행 실시 (jsonObject in jsonObject) 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드 : JSON 데이터 생성]
// [JSON 데이터 만들기 수행 실시]
var dicTotalData : Dictionary<String, Any> = [String : Any]()
// [세부 json 삽입]
var dicAosData : Dictionary<String, Any> = ["package":"com.android.chrome"]
// [세부 json 삽입]
var dicIosData : Dictionary<String, Any> = [String : Any]()
dicIosData["appScheme"] = "googlechrome://"
dicIosData["id"] = "id535886823"
// [전체 json 에 세부 json 삽입]
dicTotalData["android"] = dicAosData
dicTotalData["ios"] = dicIosData
// [json 형식 string 데이터 만들기]
var jsonTotalObj : String = ""
do {
let jsonCreate = try JSONSerialization.data(withJSONObject: dicTotalData, options: .prettyPrinted)
// json 데이터를 변수에 삽입 실시
jsonTotalObj = String(data: jsonCreate, encoding: .utf8) ?? ""
} catch {
print(error.localizedDescription)
}
// [json 파싱 메소드 호출]
self.testJS(receiveData : jsonTotalObj.description)
[소스 코드 : JSON 데이터 파싱]
func testJS(receiveData : String){
print("")
print("===============================")
print("[A_Main >> testJS() :: JSON 데이터 파싱 수행 실시]")
print("데이터 :: ", receiveData)
print("===============================")
print("")
// -----------------------------------------
// [딕셔너리 객체 생성 실시 및 전체 json 데이터 받음]
var jsonDic : Dictionary<String, Any> = [String : Any]()
do {
// 딕셔너리에 데이터 저장 실시
jsonDic = try JSONSerialization.jsonObject(with: Data(receiveData.utf8), options: []) as! [String:Any]
} catch {
print("")
print("===============================")
print("[A_Main >> testJS() :: JSON 데이터 파싱 수행 실시]")
print("catch [1] :: ", error.localizedDescription)
print("===============================")
print("")
}
// -----------------------------------------
// [정상적으로 전체 json 데이터를 받은 경우]
if(jsonDic.count > 0){
print("")
print("===============================")
print("[A_Main >> testJS() :: JSON 데이터 파싱 수행 실시]")
print("jsonDic [전체 데이터] :: ", jsonDic.description)
print("===============================")
print("")
// [세부 json 데이터 받기 실시]
if jsonDic.keys.contains("ios") == true { //키값이 존재할 경우
do {
// [딕셔너리에 세부 데이터 저장 실시]
var dicData : Dictionary<String, Any> = jsonDic["ios"] as! Dictionary<String, Any>
// 패키지명 및 앱 아이디 확인 실시
let packages = dicData["appScheme"] as! String // [googlechrome://]
let id = dicData["id"] as! String // [id535886823]
// 외부앱 열기 수행 실시
self.goAppRun(_scheme: packages, _id: id)
}
catch {
print("")
print("===============================")
print("[A_Main >> testJS() :: JSON 데이터 파싱 수행 실시]")
print("catch [2] :: ", error.localizedDescription)
print("===============================")
print("")
}
}
}
// -----------------------------------------
}
[결과 출력]
반응형
'IOS' 카테고리의 다른 글
Comments