【问题标题】:Parse nested JSON Swift 3 [duplicate]解析嵌套的 JSON Swift 3 [重复]
【发布时间】:2016-12-07 15:13:16
【问题描述】:

我正在尝试在 Swift 3 中解析复杂的 JSON 文件。我无法获取值。我找到了一些示例代码并尝试对其进行一些调整,但它不起作用我目前收到错误“类型“NSArray?”没有下标成员”......我什至不确定这是正确的做法它。附上 JSON 截图关于如何正确解析它的任何建议真的很感激。

这是我当前的代码:

let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject

let mainlistJson = jsonResult["mainlist"]as? NSArray

if let items = mainlistJson["items"] as? NSArray 
{
for item in items {
 if let description = item["description"]as? String {
 print(description)
}  } }

【问题讨论】:

    标签: ios json swift xcode swift3


    【解决方案1】:

    不要在 Swift 中使用 NSArrayNSDictionary。您应该使用 Swift 标准库的数组和字典。

    对于数组,您可以使用:[Any]

    词典:[String: Any]

    然后你就可以通过下标访问内容了。

    【讨论】:

    • 仍然收到错误类型 [Any]?没有下标成员
    • 本文档提供了我能够获得的第二个子句的总体信息,但是当我尝试获得描述时仍然会出错。其他帖子中的大多数示例都显示了更简单的 JSON。我的有好几层,我就是想不通代码能得到这些值......
    • @KirillC 没什么神秘的。复杂与否,JSON 只是 JSON。我的意思是[] 表示一个数组,{} 表示一个字典,[{}, {}] 是一个字典数组,等等。这就是所有要知道的。如果您的 JSON 很复杂,则需要您按照其逻辑进行工作——我们无法为您做到这一点。了解您的 API 及其结构,然后使用 JSONSerialization 并将结果转换为适当的类型、数组或字典。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 2018-08-06
    • 2018-07-15
    相关资源
    最近更新 更多