我已经嵌套了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还是在哪里?