【发布时间】:2020-03-28 19:20:58
【问题描述】:
我正在使用 Swift 5 和 Alamofire 5,但响应是无效的 JSON。我已经打电话给 Postman,响应 JSON 是:
[ {
"location_name": "Hamdard(waqf) Limited, Pantha Path, ধানমন্ডি আ/এ, লালমাটিয়া, ঢাকা, ঢাকা বিভাগ, বাংলাদেশ",
"description": "D M-Th 16-0299",
"engine": 1
{
"location_name": "602/Chha, Red Crescent Shorak, Mogbazar, ঢাকা, ঢাকা বিভাগ, বাংলাদেশ",
"description": "D M-Th 16-1953",
"engine": 1
} ]
我这样称呼 Alamofire:
let headers: HTTPHeaders = [
"Content-Type": "application/json",
"YumaSession": "my session_id"
]
AF.request(url,method:.get,encoding: JSONEncoding.default, headers: headers).responseJSON { response in
switch response.result {
case .success(let response):
print("response--",response)
case .failure(let error):
print("error--->",error)
}
但是 Alamofire 返回一个带有 Unicode 的 JSON 响应,如下所示:
({
description = "D M-Th 16-0299";
"location_name" = "357 Modubag,Mogbazar, \U09a2\U09be\U0995\U09be, \U09a2\U09be\U0995\U09be \U09ac\U09bf\U09ad\U09be\U0997, \U09ac\U09be\U0982\U09b2\U09be\U09a6\U09c7\U09b6";
lon = "90.41140444444444";
online = 1;
},
{
description = "D M-Th 16-1953";
"location_name" = "53, Gulshan, \U0997\U09c1\U09b2\U09b6\U09be\U09a8 \U09e7, \U09a2\U09be\U0995\U09be, \U09a2\U09be\U0995\U09be \U09ac\U09bf\U09ad\U09be\U0997, 1212, \U09ac\U09be\U0982\U09b2\U09be\U09a6\U09c7\U09b6";
lon = "90.40848888888888";
online = 1;
} )
请帮助我获得正确的 JSON 响应。
【问题讨论】:
-
如果您已经使用过 alamofire,请尝试使用 swiftyJSON。然后你可以直接得到json响应。不需要 jsonencoder 。之后使用 let jsonData = json(response.result)
-
这不是 JSON 响应,这是来自
responseJSON的解码 JSON 的打印描述。 unicode 只是其打印方式的产物。如果要查看原始正文字符串,请使用debugPrint(response)。 -
您必须更新您的问题。如果您找到可行的解决方案,请接受答案。按赞成票并打勾
标签: ios json swift alamofire swift5