투케이2K

25. (swift/xcode) jsonArray in jsonObject 형식 데이터 생성 및 파싱 수행 실시 본문

Swift

25. (swift/xcode) jsonArray in jsonObject 형식 데이터 생성 및 파싱 수행 실시

투케이2K 2021. 11. 3. 12:50
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT


[소스 코드]

    // [테스트 메인 함수 정의 실시]
    func testMain() {
        print("")
        print("===============================")
        print("[testMain : Program Start]")
        print("===============================")
        print("")
        
        // MARK: - [jsonArray - jsonObject 형식 데이터 생성]
        var _array: Array<Any> = [] // 배열 선언
        
        for i in stride(from: 1, through: 3, by: 1) { // 데이터 삽입 실시
            // 딕셔너리 사용해 jsonObject 생성
            let _dic : [String : Any] = [
                "name" : String(i)
            ] as Dictionary
            
            // 배열에 딕셔너리 데이터 삽입
            _array.append(_dic)
        }
        var jsonArray : String = "" // json 데이터를 저장할 변수 선언
        do {
            // json 데이터 생성 실시
            let jsonCreate = try JSONSerialization.data(withJSONObject: _array, options: .prettyPrinted)
            jsonArray = String(data: jsonCreate, encoding: .utf8) ?? ""
            print("")
            print("===============================")
            print("[testMain : 생성 json 데이터 확인]")
            print("data : ", jsonArray)
            print("===============================")
            print("")
        } catch {
            print(error.localizedDescription)
        }
        
        
        
        // MARK: - [jsonArray - jsonObject 형식 데이터 파싱]
        do {
            // jsonArray - jsonObject 형식 데이터를 Array 와 Dictionary 사용해서 받음
            let _parsingArray = try JSONSerialization.jsonObject(with: Data(jsonArray.utf8), options: []) as! Array<Dictionary<String, Any>>
            
            print("")
            print("===============================")
            print("[testMain : 파싱 전체 데이터 확인]")
            print("data : ", _parsingArray)
            print("===============================")
            print("")
            
            // for 문을 돌면서 데이터 확인 실시
            for i in stride(from: 0, through: _parsingArray.count-1, by: 1) {
                let jsonObj : Dictionary<String, Any> = _parsingArray[i] // 배열 각 번지 지정
                // 딕셔너리에서 특정 key 값이 포함된 지 확인 실시
                if jsonObj.keys.contains("name") == true {
                    print("")
                    print("===============================")
                    print("[testMain : 파싱 개별 데이터 확인]")
                    print("name : ", jsonObj["name"] as! String)
                    print("===============================")
                    print("")
                }
            }
        }
        catch {
            print(error.localizedDescription)
        }
    }

 


[결과 출력]


 

반응형
Comments