如何使用Alamofire快速向嵌套json对象发出请求?

时间:2020-01-28 13:36:19

标签: ios swift xcode alamofire

我已经嵌套了json以请求服务器。我已经尝试了很多方法来执行此操作,但是响应给了我一个无效的请求。这可能是根据错误的json确定的。如何获得正确的json请求?我已经一次又一次检查我的参数,这些都是正确的。在basket_items节点中,是一个json数组,因此我认为那里会发生冲突。你能帮助我吗?我已经尝试了4天。 这是我的代码:

let payment_card: JSON = [
    "cardHolderName": "card name",
    "cardNumber": "card number",
    "expireYear": "2028",
    "expireMonth": "09",
    "cvc": "123"
    ]

let buyer: JSON = [
    "id": "mak123",
    "name": "john",
    "surname": "doe",
    "identityNumber": "1234567890123",
    "email": "email@gmail.com",
    "registrationAddress": "mehpare sokak",
    "city": "Istanbul",
    "country": "Turkey",
    "ip": "192.168.1.82"
]

let shipping_adress: JSON = [
    "address": "mehpare sokak",
    "contactName": "jane doe",
    "city": "Istanbul",
    "country": "Turkey"
]

let basket_items: JSON = [
    [
        "id": "321",
        "price": "0.3",
        "name": "binocular",
        "category1": "collectibles",
        "itemType": "physical"
    ],
    [
        "id": "432",
        "price": "0.5",
        "name": "gamecode",
        "category1": "game",
        "itemType": "virtual"
    ],
    [
        "id": "543",
        "price": "0.2",
        "name": "usb",
        "category1": "electronics",
        "itemType": "physical"
    ]

]

let headers: HTTPHeaders = [
    "accept": "application/json",
    "content-type": "application/json",
    "authorization": self.authValue,
    "x-iyzi-rnd": self.randomString,
    "cache-control": "no-cache"
]


let parameters: Parameters = [

        "locale": "tr",
        "conversationId": "123456789",
        "price": "1.0",
        "paidPrice": "1.0",
        "installment": 1,
        "paymentChannel": "MOBILE_IOS",
        "basketId": "12345",
        "paymentGroup": "OTHER",
        "paymentCard": payment_card.rawValue,
        "buyer": buyer.rawValue,
        "shippingAddress": shipping_adress.rawValue,
        "billingAddress": shipping_adress.rawValue,
        "basketItems": basket_items,
        "currency": "TRY"


    ]






Alamofire.request("https://api.iyzipay.com/payment/auth", method: .post, parameters: parameters,encoding: JSONEncoding.default, headers: headers)
    .responseJSON { (response) in
        switch response.result {
        case .success(let value):
            let swiftyJson = JSON(value)
            print ("return as JSON using swiftyJson is: \(swiftyJson)")
        case .failure(let error):
            print ("error: \(error)")
        }

}

如何管理该json?我的错是在basket_items还是在哪里?

0 个答案:

没有答案