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

使用 Alamofire 在 swift 3 中解析 Json

如何在 Swift 5 中使用 Alamofire 解析 json

快速解析 Alamofire 结果

iOS9 - NSURLSession 无法解析响应但 AlamoFire 工作

Swift - Alamofire - 解析 JSON