在 Swift 问题中为 iOS 应用程序解析 JSON

Posted

技术标签:

【中文标题】在 Swift 问题中为 iOS 应用程序解析 JSON【英文标题】:Parsing JSON for iOS app in Swift Issue 【发布时间】:2016-03-25 19:59:10 【问题描述】:

首先,这是一个菜鸟问题,所以任何有兴趣的人都可以回答我,因为我只是一个初学者。 因此,我需要从我的大学毕业生为我们的年度技术节创建的 api 中解析 JSON 数据。但是他们忘记为包含所有信息的数组命名。 1 他们忘记放名字了,角色类似于开头的“贷款”2 我正在使用 SwiftyJSON 解析数据,这是我的代码。

func getJSON()

    let url = NSURL(string: baseURL)
    let request = NSURLRequest(URL:url!)
    let session = NSURLSession(configuration:NSURLSessionConfiguration.defaultSessionConfiguration())
    let task = session.dataTaskWithRequest(request)  (data, response, error) -> Void in


        if error == nil

            let swiftyJSON = JSON(data:data!)
            let loan1 = swiftyJSON["loans"][0]["status"].stringValue
            print(loan1)
        else
            print("There is an error")
        

    
                task.resume()

所以我想知道可以用什么来代替“贷款”来让我的 JSON 解析启动并运行。我已经尝试过“”和“”来确定。 谢谢!

【问题讨论】:

目前我还不清楚完整的 JSON 结构是什么样的。你能发布整个 JSON 吗?或者至少是它的整体结构? 那个 JSON 与你的描述和图片不符。 我只是想知道上面代码中的“贷款”可以用什么代替,以便我可以解析数据,因为上面的api链接中的数组不包含数组名。跨度> 【参考方案1】:

根据您发布的 JSON 字典,您没有访问任何现有的键,因此 loan1 不可能是 nil 以外的任何东西。根据第一张图片中的响应,您会得到一个字典数组。

 [
    
    "eid": 98,
    "ename": "Lights. Camera. Tweet",
    "sname": "IEEE GTBIT",
    "ebanner": "http://s10.postimg.org/a11cezdft/12045587_1594466984176579_4873790458939193947_o.jpg",
    "time": "1459189800854",
    "category": "Literary & Management",
    "desc": "Lights. Camera. Tweet! brings you a chance to win ..."
    ,
    
    "eid": 45,
    "ename": "Hack@GTBIT",
    "sname": "android Techies",
    "ebanner": "http://i.imgur.com/ANR84uk.jpg",
    "time": "1459222200397",
    "category": "Technical",
    "desc": "Hack@GTBIT  is a Software Hackathon where particip..."
    ,

等等……

如果这些数据都不是您要查找的数据,则说明您请求不正确,或者返回的数据格式不正确或未包含所有必要信息。

您可以使用 ID 或其他值发出新请求以检查状态;您可以通过 swiftyJSON[0]["eid"] 访问它——这将为您提供值 98。但是根据响应,您尝试访问的键值对是不正确的。 “贷款”键在顶层不存在,“状态”键也不存在。

【讨论】:

以上是关于在 Swift 问题中为 iOS 应用程序解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中为 iOS 应用程序实现 Facebook Audience Network 广告

在 iOS8/Swift 中为 UIDatePicker 设置文本颜色和字体

如何在 Swift 中为 iOS 10 和 iOS 9.3 初始化 NSManagedObject 子类

在 Swift 中为 iOS 设计一个填字游戏网格

使用 Appdelegate 在 IOS Swift 中为所有视图控制器创建 Firebase CRUD 方法

如何在 iOS Swift 3.1 Xcode 8.3.2 中为 iPad 应用程序安装 iPhone 应用程序