ridvan
ridvan

Reputation: 743

how to send array to Alamofire as a Paremeter in Swift

I am new ios development, I am trying add JsonObject to array and send to as a Parameter value to Alamofire, but When I try it, I give this error Cannot convert value of type '[[String : Any]]' to expected argument type '[String : Any]' What am I to do?

     @State var attendeeData = [[String: Any]]()

     let parameters: [String: Any] = [
                                
                                "firstName": atd1FirstName,
                                "lastName": atd1LastName,
                                "email": atd1Email,
                                "telNo": atd1Phone,
                                "nationality": atd1Nationatility,
                                "licenseNumber": atd1LicenseNumber,
                                "companyName": atd1CompanyName,
                                "sessionID": 0,
                                "sessionDetailID": 0,
                                "url": ""
                            ]
    
     let parameters: [String: Any] = [
                                
                                "firstName": atd1FirstName,
                                "lastName": atd1LastName,
                                "email": atd1Email,
                                "telNo": atd1Phone,
                                "nationality": atd1Nationatility,
                                "licenseNumber": atd1LicenseNumber,
                                "companyName": atd1CompanyName,
                                "sessionID": 0,
                                "sessionDetailID": 0,
                                "url": ""
                            ]
    attendeeData.append(parameters)
    attendeeData.append(parameters2)        

    addAttendeeService(parameter: attendeeData)

    private func addAttendeeService(parameter: [String: Any]){
        DispatchQueue.global().async {
            AF.request("http://178.18.200.116:96/api/SessionPerson/Add",method: .post,parameters: parameter, encoding: JSONEncoding.default).response{ response in
            debugPrint(response)
    }

Array Object: When I try do this sWift doesn't accept this format

                let parameters: [String: Any] = [
                    
                    
                      {
                          "firstName": atd1FirstName,
                          "lastName": atd1LastName,
                          "email": atd1Email,
                          "telNo": atd1Phone,
                          "nationality": atd1Nationatility,
                          "licenseNumber": atd1LicenseNumber,
                          "companyName": atd1CompanyName,
                          "sessionID": 0,
                          "sessionDetailID": 0,
                          "url": ""
                      },
                      {
                          "firstName": atd1FirstName,
                          "lastName": atd1LastName,
                          "email": atd1Email,
                          "telNo": atd1Phone,
                          "nationality": atd1Nationatility,
                          "licenseNumber": atd1LicenseNumber,
                          "companyName": atd1CompanyName,
                          "sessionID": 0,
                          "sessionDetailID": 0,
                          "url": ""
                      }
                    
                ]
    

Upvotes: 0

Views: 168

Answers (1)

Protocol
Protocol

Reputation: 1792

Simply changed your { } into [] that will solve your issue.

  let parameters: [String: Any] = [
                
                
                  [
                      "firstName": atd1FirstName,
                      "lastName": atd1LastName,
                      "email": atd1Email,
                      "telNo": atd1Phone,
                      "nationality": atd1Nationatility,
                      "licenseNumber": atd1LicenseNumber,
                      "companyName": atd1CompanyName,
                      "sessionID": 0,
                      "sessionDetailID": 0,
                      "url": ""
                  ],
                  [
                      "firstName": atd1FirstName,
                      "lastName": atd1LastName,
                      "email": atd1Email,
                      "telNo": atd1Phone,
                      "nationality": atd1Nationatility,
                      "licenseNumber": atd1LicenseNumber,
                      "companyName": atd1CompanyName,
                      "sessionID": 0,
                      "sessionDetailID": 0,
                      "url": ""
                  ]
                
            ]

Upvotes: 1

Related Questions