使用Alamofire解析json响应

时间:2018-04-05 05:25:32

标签: ios json swift alamofire

我在邮递员中有这种json的共鸣......

    {
        "errorcode": "0",
        "errorstr": "Success",
        "result": {
        "top": [
          "id": 826133
          "deal_detail": "<p><strong>Main link <a href=\"https://links.de.com?ref=forums&url=https://pa.com/deal-on--clpid-7960\" target=\"\" rel=\…</p>
         ],

       “popular”: [
         "id": 826133
         "deal_detail": "<p><strong>Main link <a href=\"https://links.de.com?ref=forums&url=https://pa.com/deal-on--clpid-7960\" target=\"\" rel=\…</p>
         ],

"categories": {
            "1": "Fashion & Apparels",
            "2": "Mobiles & Mobile Accessories",
            "3": "Computers, laptops & Accessories",
            "4": "Electronics",
        },
        "stores": {
            "1": "Amazon",
            "75": "Dominos",

        }
    }

我试图像这样继续解析这个json响应......

if let orderData = result["result"] as? [[String:Any]] {...但由于结果不是数组,我不认为这是正确的方法。

什么是正确的方法......?

3 个答案:

答案 0 :(得分:1)

结果可以是数组和字典,两者都是很好的方法。但在你的情况下,它是字典而不是任何数组,所以请相应地对待它,并按照下面的方式进行操作

let orderData = result["result"] as? [String:Any] // Now in orderData you have result

现在根据它解析更多数据。

还有任何问题或不清楚,然后问。

答案 1 :(得分:1)

使用AlamofireObjectMapper。它会让你的工作变得轻松 1. 1.根据您获得的JSON响应创建模型类。以上链接有例子。它应该与JSON表示相同 2.解析JSON如下:

Alamofire.request(URL).responseObject { (response: DataResponse<YourModel>) in

let modelResponse = response.result.value   
// your code 
}

答案 2 :(得分:-1)

我建议去一个名为SwiftyJSON的用于响应解析的着名库。这将减少您的工作量和时间。