【发布时间】:2018-10-05 15:11:26
【问题描述】:
您好,我是 iOS 新手,我正在使用 Alamofire 进行网络通话。事情进展顺利,我在拨打网络电话时没有遇到任何问题。但是由于我必须发布我的自定义对象,所以我没有运气。所以这是我之前在做的事情
let parameters: Parameters = [
"Phone": phone,
"ApiKey":"x-y-z"
]
这工作正常。
但现在我必须像这样发布我的对象
let parameters: Parameters = [
"ApiKey": Common.API_KEY,
"cardModel": cardModel,
"clientModel" : clientModel
]
我的 cardModel 和客户端模型已经转换为 Json 字符串,我只是将它们放入字典中。转换后的模型看起来像这样
"cardModel": {
"ExpiryYear": 2018,
"ExpiryMonth": 1,
"CardNumber": "55555",
"CardHolderName": "xyz"
}
所以我将这些序列化模型放入字典中,并使用 Alamofire 将此数据发布到请求正文中。
但在服务器端,这些模型为空。知道如何按照我想要的方式放置自定义模型吗?请帮忙
PS我刚刚打印出我的参数字典,我检查了这个输出
["ApiKey": "x-y-z",
"\cardModel\": "{
"\ExpiryYear\": 2018,
"\ExpiryMonth\": 1,
"\CardNumber\": "\55555\",
"\CardHolderName\": "\xyz\"
}
]
我将参数 json 打印输出放在 jsonLint 中,但格式错误。我刚刚删除了“\”并将 [] 替换为 {},然后它似乎是有效的 Json
那我现在该怎么办????请帮忙
更新1: 这是我的端点的有效 json(从 android 发送)
{
"ApiKey": "XXX-XXX-XXX",
"cardModel": {
"CardHolderName": "Fjj",
"CardNumber": "555",
"CardExpiryMonth": 1,
"CardExpiryYear": 2018
......
}
}
【问题讨论】:
-
这取决于您的 API,您的 API 是否需要 JSON 中的 JSON?如果不是,请不要这样做,而只需执行
"clientModel" : clientModelDictionaryVersion,而不是 JSONString 之一。如果你不能轻松地做回来,只需将其转换为 utf8 中的数据,然后使用 JSONSerialization 将该数据转换为字典。 -
我已经转换了它,并且我的端点需要答案中发布的格式的数据。刚刚更新现在检查答案
-
这不是 JSON 中的 JSON。因此,不要使用
clientModel,而是发送帮助您构造字符串的字典。 -
我没有得到你
-
我只是想知道如何将 cardModel (即 string )放入参数字典中