ios - 将 json 数据转换为 [[String : AnyObject]] it seems to be empty - why?

标签 ios json swift alamofire swifty-json

我正在使用 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"]}

最佳答案

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

你需要使用:

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

关于ios - 将 json 数据转换为 [[String : AnyObject]] it seems to be empty - why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40792857/

相关文章:

ios - 如何像在 Facebook 应用程序中一样以编程方式打开设置?

ios - 将 url 存储在 userdefaults 中

ruby-on-rails - 在 Rails 中解析 JSON

objective-c - 将 NSString 转换为 NSDictionary/JSON

ios - RxSwift - 误解了一些概念

ios - 如何修复 SIGABRT 错误

iPhone iOS : How to dynamically move around/resize images on top of an image background?

Javascript JSON.stringify 函数不起作用

取消隐藏 View 时 iOS 自动布局 fatal error NSInternalInconsistencyException

ios - Rx swift : How to add gesture to UILabel?