iOS:从 Alamofire 解析的 SwiftyJSON 是一个数组。尝试解析时为空

Posted

技术标签:

【中文标题】iOS:从 Alamofire 解析的 SwiftyJSON 是一个数组。尝试解析时为空【英文标题】:iOS: SwiftyJSON parsing from Alamofire is an array. Getting null when trying to parse 【发布时间】:2016-06-14 23:53:26 【问题描述】:

api 请求返回如下内容:

[  
     
  "
     .....

我正在使用 swiftyJSON 来解析这个,我从 Alamofire 请求中获得了数据:

let json = JSON(data)
let mapHeir = json[0]["Info"]["String"]
print(mapHeir)

这返回null,我试过了:

let mapHeir = json[0]["Info"]["String"].string
let mapHeir = json[0]["Info"]["String"].stringValue
let mapHeir = json["Info"]["String"]

并且它们都返回空。 我怎样才能得到 hatHierarchyString?

【问题讨论】:

我需要你的完整 JSON。请将其粘贴到此处,以便我们为您提供进一步帮助。 不幸的是我做不到。我只需要知道如何进入一个数组,然后去 hatHeirarchyString。 你的 JSON 是这样开始的吗?喜欢正是 【参考方案1】:

试试这个:

假设你有类似的东西:

.responseJSON response in

switch response.result
                    case .Success:
            let json = JSON(data: response.data!)

那就做吧,

if let someThing = json[0]["hatInfo"]["hatHierarchyString"].string 
  //Now you got your value

【讨论】:

随时。编码快乐!! :)【参考方案2】:

您应该首先遍历数组 - 在您的情况下,您有一个字典数组。然后像这样访问字典数据:

let mapHeir = json["hatInfo","hatHierarchyString"].stringValue

【讨论】:

【参考方案3】:

你可以试试:

let string = json.array?.first?["hatInfo"]["hatHierarchyString"].string

这会返回一个可选的String

【讨论】:

这给了我零。

以上是关于iOS:从 Alamofire 解析的 SwiftyJSON 是一个数组。尝试解析时为空的主要内容,如果未能解决你的问题,请参考以下文章

无法解析响应 alamofire swift 3

使用 Alamofire 在 swift 3 中解析 Json

Swift - Alamofire源码解析

Swift - Alamofire源码解析

Swift - Alamofire源码解析

Swift - Alamofire源码解析