투케이2K

135. (swift/xcode) Codable (코더블) 사용해 jsonArray - jsonObject 형태 json 데이터 파싱 수행 본문

Swift

135. (swift/xcode) Codable (코더블) 사용해 jsonArray - jsonObject 형태 json 데이터 파싱 수행

투케이2K 2022. 11. 24. 11:05

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [Codable (코더블) : 사용자 정보]
    struct userInfo : Codable {
        
        var name : String
        var age : String

    }

    
    
    
    
    
    
    // MARK: - [테스트 메인 함수 정의 실시]
    func testMain() {
        
        // [로직 처리 수행]
        DispatchQueue.main.async {
            
            
            // [json string 데이터 선언]
            let testJson = "[{\"name\":\"투케이\",\"age\":\"29\"},{\"name\":\"TWOK\",\"age\":\"30\"}]"
            
            print("")
            print("===============================")
            print("[testJson 확인 :: \(testJson)]")
            print("===============================")
            print("")
            
            
            // [JSON 디코딩 수행 실시]
            do {
                // [String 형식 json을 Data 타입으로 변환 수행 실시]
                let decodeData = testJson.data(using: .utf8)
                print("")
                print("===============================")
                print("[decodeData 확인 :: \(decodeData)]")
                print("===============================")
                print("")
                
                
                // MARK: [구조체 사용해 json 개별 데이터 확인 실시 :: userinfo 구조체를 [] 배열 안에 담아야함]
                let decodeJson = try JSONDecoder().decode([userInfo].self, from: decodeData!)
                print("")
                print("===============================")
                print("[decodeJson 확인 :: \(decodeJson)]")
                print("===============================")
                print("")
                
                
                // [for 문을 사용해서 Array Json 형태 데이터 파싱 수행]
                for i in stride(from: 0, through: 1, by: 1){
                    print("")
                    print("===============================")
                    print("[json 파싱 [name] :: \(decodeJson[i].name)]")
                    print("[json 파싱 [age] :: \(decodeJson[i].age)]")
                    print("===============================")
                    print("")
                }
            } catch {
                print("")
                print("===============================")
                print("[error [에러] :: \(error.localizedDescription)]")
                print("===============================")
                print("")
            }

        }

    }
 

[결과 출력]

 

 

반응형
Comments