Search code examples
jsonswiftalamofire

alamofire encodingCompletion JSON to dictionary


I need to get the JSON code from the Succes in the encodingCompletion, but i don't know how to put it in a dictionary. does anyone know how? i am stuck with it for 2 hours now...

PRINT JSON:

SUCCESS: {
id = 88;
message = "HOUSE_ADDED_SUCCESS";
}

CODE:

Alamofire.upload(.POST, url, headers:headers,multipartFormData: { multipartFormData in
            multipartFormData.appendBodyPart(data: self.house.image!, name: "image", fileName: "file.jpg", mimeType: "image/jpg")
            multipartFormData.appendBodyPart(data:self.house.streetName!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"streetName")
            multipartFormData.appendBodyPart(data:self.house.streetNumber!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"streetNumber")
            multipartFormData.appendBodyPart(data:self.house.city!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"city")
            multipartFormData.appendBodyPart(data:self.house.zipcode!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"zipcode")
            multipartFormData.appendBodyPart(data:String(self.house.kitchen_shared!).dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"kitchen_shared")
            multipartFormData.appendBodyPart(data:String(self.house.livingroom_shared!).dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"livingroom_shared")
            multipartFormData.appendBodyPart(data:String(self.house.bathroom_shared!).dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"bathroom_shared")
            multipartFormData.appendBodyPart(data:self.house.persons!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"persons")

            },
            encodingCompletion: { encodingResult in
                switch encodingResult {
                case .Success(let upload, _, _):
                    upload.responseJSON { JSON in print(JSON) }

                   // var dictionary:[String:AnyObject] = JSON as! [String:AnyObject]
                   // self.house.id = dictionary["id"] as! Int
                    self.performSegueWithIdentifier("addRoomSegue", sender: self)
                case .Failure(let encodingError):
                    print(encodingError)
                }
            }
            )

Solution

  • Inside the .Success Post this:

     switch encodingResult {
     case .Success(let upload, _, _):
           upload.responseJSON{ response in
              if let value: AnyObject = response.result.value {
                 let post = JSON(value)
                 print(post["your_json_attr"])
              }
     }
     case .Failure(let encodingError):