1

Reddit から取得している JSON オブジェクトからデータを抽出しようとしていますが、SwiftyJSON ライブラリの使用時に問題が発生しています (これはhttps://github.com/SwiftyJSON/SwiftyJSONで確認できます)。

次の URL で Reddit の API を呼び出しています。" http://www.reddit.com/r/aww/hot.json "リスト。

私のコードは以下の通りです:

import UIKit

class ViewController: UIViewController, NSURLConnectionDelegate {

    var data = NSMutableData()

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        self.connectReddit()
    }

    func connectReddit() {
        let urlPath: String = "http://www.reddit.com/r/aww/hot.json"
        var url = NSURL(string: urlPath)!
        var request = NSURLRequest(URL: url)
        var connection = NSURLConnection(request: request, delegate: self, startImmediately: false)!
        connection.start()
    }

    func connection(connection: NSURLConnection!, didReceiveData data: NSData!){
        self.data.appendData(data)
    }

    func connectionDidFinishLoading(connection: NSURLConnection!) {
        var err: NSError?
        // throwing an error on the line below (can't figure out where the error message is)
        let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
        println(jsonResult)

        let json = JSON(data: data)
        let authorName = json["data"]["children"]["author"].stringValue
        println(authorName)
    }



}

SwifyJSON クラスを呼び出しているコードを確認できます。データを解析しようとすると、次のようになります。そこにデータがはっきりと表示されると、応答として nil が返されます。

let json = JSON(data: data)
        let authorName = json["data"]["children"]["author"].stringValue
        println(authorName)

ここで何が間違っているのかわかりません。

助けてくれてありがとう!

4

2 に答える 2

2

これを試してください。

let authorName = json["data"]["children"][0]["data"]["author"].stringValue
于 2015-02-10T14:02:45.107 に答える