iOS Swift4でAlamofireResponseを処理する方法は?

ゴパル

Alamofireを使用してPOSTリクエストを統合できます。次の応答を取得しています。しかし、「docname」キードキュメントを配列に追加する必要があります。誰かがこの応答を処理するために私を案内してくれませんか

My Response:

{
    "ResponsePayload": {
        "StatusData": {
            "StatusCode": "200",
            "Status": "SUCCESS",
            "Documents": [
                {
                    "docname": "Standard",
                    "isUploaded": "true"
                },
                {
                    "docname": "Standard2",
                    "isUploaded": "true"
                },
                {
                    "docname": "Standard3",
                    "isUploaded": "false"
                },
                {
                    "docname": "Standard4",
                    "isUploaded": "false"
                },
                {
                    "docname": "Standard5",
                    "isUploaded": "true"
                },
                {
                    "docname": "Standard",
                    "isUploaded": "true"
                },
                {
                    "docname": "Standard",
                    "isUploaded": "false"
                },
                {
                    "docname": "Standard",
                    "isUploaded": "true"
                },
                {
                    "docname": "Standard",
                    "isUploaded": "true"
                },
                {
                    "docname": "DNC Format",
                    "isUploaded": "true"
                },
                {
                    "docname": "Form 60",
                    "isUploaded": "false"
                },
                {
                    "docname": "Standard",
                    "isUploaded": "true"
                },
                {
                    "docname": "Standard",
                    "isUploaded": "false"
                }
            ]
        }
    }
}

私のソースコード:

func getMandatoryDocs(){

    print("calling ")
    
let url = "url"
    
    
    let headers = ["Content-Type": "application/json"]

    
    let parameters: Parameters = [
        "Request": [
            "RequestPayload": [
                "ProposalId": self.textField?.text!,
                "Type": "getMandatoryDocuments"
            ]
        ]
    ]
    
    
Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
            if response.result.isFailure {
                            //In case of failure
                }else {
                            //in case of success

// print(response)

                            switch response.result {
                            case .success(let response):
                                //Sucess
                                //                        self.progress.hide()
                                //                            print("response :-", response)
        
                                let json = response as? [String: Any]

// print(json!)

                                self.status = json!["Status"] as? String
        
                                print(self.status)
                
                            case .failure(let error):
                                //Failure
                                print(error.localizedDescription)
                                //                        self.progress.hide()
                            }
        
        
        
        
        
                        }
                    }
    
}
カムラン

以下のように応答jsonのデータ型を作成し、JSONDecoderを使用して応答を解析します。

// MARK: - PostBody
struct PostBody: Codable {
    let responsePayload: ResponsePayload

    enum CodingKeys: String, CodingKey {
        case responsePayload = "ResponsePayload"
    }
}

// MARK: - ResponsePayload
struct ResponsePayload: Codable {
    let statusData: StatusData

    enum CodingKeys: String, CodingKey {
        case statusData = "StatusData"
    }
}

// MARK: - StatusData
struct StatusData: Codable {
    let statusCode: String
    let status: String
    let documents: [Document]

    enum CodingKeys: String, CodingKey {
        case statusCode = "StatusCode"
        case status = "Status"
        case documents = "Documents"
    }
}

// MARK: - Document
struct Document: Codable {
    let docname: String
    let isUploaded: String

    enum CodingKeys: String, CodingKey {
        case docname = "docname"
        case isUploaded = "isUploaded"
    }
}

AF.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseData { response in
    switch response.result {
    case .success(let data):
        do {
            let postBody = try JSONDecoder().decode(PostBody.self, from: data)
            print(postBody.responsePayload.statusData.statusCode)
            print(postBody.responsePayload.statusData.documents.map { $0.docname })
         } catch {
             print(error)
         }
    case .failure(let error):
        print(error)
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

iOS Swift4 DateFormatter()のみを使用して短い平日を印刷する方法は?

分類Dev

iOSで「CFNetworkSSLHandshakefailed」を処理する方法

分類Dev

iOS9.0のSwift4で、都市の言語をローカライズする方法は?

分類Dev

iOS swift4でUITabelviewcellを2つの配列として検索する方法は?

分類Dev

iOS swift4でMagentoRestAPIにアクセスする方法

分類Dev

iOS画像とデータを暗号化する方法Swift4

分類Dev

iOS Swift4でこの円形を作成するにはどうすればよいですか?

分類Dev

iOSからMySqlデータベースにSwift4でデータを送信する方法

分類Dev

iOS解析Swift4から値「ブール値」をフェッチする方法

分類Dev

Swift4でiOSカメラの露出を手動で設定する

分類Dev

Swift4でiOSのすべてのモーダルを閉じる

分類Dev

iOS Swift4でFCMバッジ数をリセットする

分類Dev

iOS11およびSwift4でカメラから深度データをキャプチャする方法は?

分類Dev

iOS 11でアプリ内購入のshouldAddStorePaymentを処理する方法は?

分類Dev

iOS 8 Photo Extensionsでメモリの制約を処理する方法は?

分類Dev

iOSでUIActivityControllerのタイプのクリックを処理する方法は?

分類Dev

この種の非同期タスクをIOSで処理する方法は?

分類Dev

Quickblox iOS SDKからのエラーを処理する方法は?

分類Dev

iOS10でUserNotificationsアクションを処理する方法

分類Dev

swift3iOSクロージャで可能なnilビューを処理する方法

分類Dev

開かれていないプッシュ通知を処理する方法(iOS、Swift)

分類Dev

iPhoneで処理するときにiPadでiOSプッシュ通知を無効にする方法は?

分類Dev

iOS swift4で名の検証を行うにはどうすればよいですか?

分類Dev

Swift4でネストされたJSONを処理する方法

分類Dev

iOS / AndroidおよびFirebaseで日付を処理する最良の方法は何ですか?

分類Dev

iOS9以降のSwift4でCoreDataを使用するようにBundle.main.urlを定義します

分類Dev

Swift4以降およびIOS11以降でビデオを録画および保存するにはどうすればよいですか?

分類Dev

swift4およびIOS11で音声認識言語を変更するにはどうすればよいですか?

分類Dev

iOS 10でバックグラウンドでプッシュ通知を処理する方法は?

Related 関連記事

  1. 1

    iOS Swift4 DateFormatter()のみを使用して短い平日を印刷する方法は?

  2. 2

    iOSで「CFNetworkSSLHandshakefailed」を処理する方法

  3. 3

    iOS9.0のSwift4で、都市の言語をローカライズする方法は?

  4. 4

    iOS swift4でUITabelviewcellを2つの配列として検索する方法は?

  5. 5

    iOS swift4でMagentoRestAPIにアクセスする方法

  6. 6

    iOS画像とデータを暗号化する方法Swift4

  7. 7

    iOS Swift4でこの円形を作成するにはどうすればよいですか?

  8. 8

    iOSからMySqlデータベースにSwift4でデータを送信する方法

  9. 9

    iOS解析Swift4から値「ブール値」をフェッチする方法

  10. 10

    Swift4でiOSカメラの露出を手動で設定する

  11. 11

    Swift4でiOSのすべてのモーダルを閉じる

  12. 12

    iOS Swift4でFCMバッジ数をリセットする

  13. 13

    iOS11およびSwift4でカメラから深度データをキャプチャする方法は?

  14. 14

    iOS 11でアプリ内購入のshouldAddStorePaymentを処理する方法は?

  15. 15

    iOS 8 Photo Extensionsでメモリの制約を処理する方法は?

  16. 16

    iOSでUIActivityControllerのタイプのクリックを処理する方法は?

  17. 17

    この種の非同期タスクをIOSで処理する方法は?

  18. 18

    Quickblox iOS SDKからのエラーを処理する方法は?

  19. 19

    iOS10でUserNotificationsアクションを処理する方法

  20. 20

    swift3iOSクロージャで可能なnilビューを処理する方法

  21. 21

    開かれていないプッシュ通知を処理する方法(iOS、Swift)

  22. 22

    iPhoneで処理するときにiPadでiOSプッシュ通知を無効にする方法は?

  23. 23

    iOS swift4で名の検証を行うにはどうすればよいですか?

  24. 24

    Swift4でネストされたJSONを処理する方法

  25. 25

    iOS / AndroidおよびFirebaseで日付を処理する最良の方法は何ですか?

  26. 26

    iOS9以降のSwift4でCoreDataを使用するようにBundle.main.urlを定義します

  27. 27

    Swift4以降およびIOS11以降でビデオを録画および保存するにはどうすればよいですか?

  28. 28

    swift4およびIOS11で音声認識言語を変更するにはどうすればよいですか?

  29. 29

    iOS 10でバックグラウンドでプッシュ通知を処理する方法は?

ホットタグ

アーカイブ