iOS Swift 解析来自 Alamofire 的 JSON 响应
Posted
技术标签:
【中文标题】iOS Swift 解析来自 Alamofire 的 JSON 响应【英文标题】:iOS Swift Parsing JSON Response From Alamofire 【发布时间】:2017-04-24 12:13:47 【问题描述】:这是我从服务器收到的实际 JSON 响应:
"case_details":
"status": "PENDING",
"caseNumber": "ARBIT.CASE(C)/1/2017",
"party": "COMBITHERM APPARATE-UND ANLAGENBAU GMBH .Vs. COXWELL DOMES ENGINEERS PVT. LTD. & ANR",
"pAdv": "MR. DEVENDRA SINGH",
"updatedOn": "24-04-2017",
但是当我在 swift 中得到同样的 JSON 响应时,它会收到类似
"case_details"=
"status"= "PENDING",
"caseNumber"= "ARBIT.CASE(C)/1/2017",
"party"= "COMBITHERM APPARATE-UND ANLAGENBAU GMBH .Vs. COXWELL DOMES ENGINEERS PVT. LTD. & ANR",
"pAdv"= "MR. DEVENDRA SINGH",
"updatedOn"= "24-04-2017",
问题是:
更改为=
我该如何解决?
我试过的代码:
Alamofire.request(baseurl, method: .get).responseJSON response in
let statuscode = response.response?.statusCode
switch response.result
case .success(_):
if ( statuscode == 200)
let JSON = response.result.value!
//JSON Returns `=` instead of `:`
case .failure(let error):
print("Request Failed With Error:\(error)")
【问题讨论】:
请注意,您的消息都不是有效的 JSON 消息,请查看最后一个
之前的多余逗号
它不会创建任何问题
@Anbu.Karthik 它不会有任何问题,但在某些响应中,我需要将相同的 JSON 响应发送回我的服务器。在服务器端,他们期望它为:
而不是=
。那是我的问题
第一个例子是before,第二个例子是after解析。 Alamofire 很可能会在后台解析 JSON,然后您会得到一本字典。
您正在从后端打印 JSON 字典,对吗?我相信这可能只是 description
属性格式化字典的方式......这就是打印时的格式化方式。
【参考方案1】:
试试这个
Alamofire.request("your url", method: .get, parameters: parameter).validate().responseJSON response in
switch response.result
case .success:
if let result = response.result.value
let JSON = result as! [String : AnyObject]
callback(JSON as AnyObject, true)
case .failure(let error):
print(error)
【讨论】:
以上是关于iOS Swift 解析来自 Alamofire 的 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章
使用 Alamofire 在 swift 3 中解析 Json
如何在 Swift 5 中使用 Alamofire 解析 json