Search code examples
swiftpostalamofire

Post A Json object as parameter value in Swift 4 ios using Alamofire


I am trying many ways but every time i was failed. i want to post json object as key value key is "data" key value is

{"totalcost":"8500","delivery_type":"take_away","order_name":"","order_mobilenumber":"","order_city":"Chose Your Place","order_address":"","take":"  2 Hour ","":[{"parent_id":"145","subitem_id":"179","quentity":"1"}],"customer_id":"6"}

and My code is

let parameters: [String: Any] = [
        "data":
            ["customer_id":"6",
            "totalcost":"8500",
            "delivery_type":"take_away",
            "order_name":"",
            "order_mobilenumber":"",
            "order_city":"Chose Your Place",
            "order_address":"",
            "take_away_time":" Next 2 Hour ",
            "":[
                [
                  "parent_id":"145",
                  "subitem_id":"179",
                  "quentity":"1"
                ]
            ]
        ]

    ]

Alamofire.request("http:/app_con",method:.post,parameters:parameters,encoding:JSONEncoding.default).responseJSON{response in
        let jsonResult = response.result.value
        print(jsonResult)

    }

and i am getting below response

{
message = "Please Try After Some Time";
status = error;

}

But through post man i am getting below response

{
message = "successfully submitted";
status = successful;

})

i tried many ways , nothing is worked out for me . please give me your valuable suggestions .

Thank You


Solution

  • **It was solved by using SwiftyJson. I searched many sites but I did not get expected answer. I am posting the answer because it will be useful for someone

    Solution is

    I tried to post key value in dictionary format instead of json format,That's why i did not get expected output. swiftjson is very to write json object.**
    
    let emptyJson : JSON = JSON(["customer_id":"26",
                                     "totalcost":"8500",
                                     "delivery_type":"take_away",
                                     "order_name":"",
                                     "order_mobilenumber":"",
                                     "order_city":"Chose Your Place",
                                     "order_address":"",
                                     "take_away_time":" Next 2 Hour ",
                                     "":[
                                        [
                                            "parent_id":"145",
                                            "subitem_id":"179",
                                            "quentity":"1"
                                        ]
                                        ]
                                   ])
    let parameters: [String: Any] = [
            "data": emptyJson
        ]
    Alamofire.request("http://_con",method:.post,parameters:parameters).responseJSON{response in
            let jsonResult = response.result.value
            print(jsonResult)
    
        }
    

    And There is no need to use json encoding in Alamofire request.we just are posting json object.