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

Posted

技术标签:

【中文标题】将 json 数据转换为 [[String: AnyObject]] 后,它似乎是空的 - 为啥?【英文标题】:After casting json data to [[String: AnyObject]] it seems to be empty - why?将 json 数据转换为 [[String: AnyObject]] 后,它似乎是空的 - 为什么? 【发布时间】:2016-11-24 18:39:24 【问题描述】:

我正在使用alamofire 调用我的网络服务并尝试解析 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
    );

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

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

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

【问题讨论】:

【参考方案1】:

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

你需要使用:

if let jsonData = response.result.value as? [String: AnyObject]

   // Handle data

【讨论】:

以上是关于将 json 数据转换为 [[String: AnyObject]] 后,它似乎是空的 - 为啥?的主要内容,如果未能解决你的问题,请参考以下文章

将String类型的json数据转换为真正的json数据

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

怎么把获取的json数据转换成string

使用 Pig 将 Json 数据转换为特定的表格格式

将带有 JSON 对象数组的 Spark 数据框列转换为多行

怎样用C#把JSON数据转换为list或数组