将json数据转换为[[String:AnyObject]]后,它似乎是空的 - 为什么?

时间:2016-11-24 18:39:25

标签: ios json swift alamofire swifty-json

我用alamofire调用我的web服务并尝试解析json结果。

我的代码如下所示:

Alamofire.request("\(serverURL)/users/\(username)/hashtags")
        .validate()
        .responseJSON { response in
switch response.result {
            case .success:
                DispatchQueue.main.async(execute: {
                print(response.result.value!)

                if let jsonData = response.result.value as? [[String: AnyObject]] {
                        print("this is not printed")

第一次打印返回:

{
    hashtags =     (
        test,
        elo
    );
}

并且根本不打印第二个 - 代码永远不会被执行。为什么呢?

当我在浏览器中调用我的web服务时,我得到了:

{"hashtags":["test","test2"]}

1 个答案:

答案 0 :(得分:2)

您尝试转换的JSON结构是字典而不是数组。您正在尝试将响应转换为字典数组,这就是它失败的原因。

您需要使用:

if let jsonData = response.result.value as? [String: AnyObject]
{
   // Handle data
}