2014-11-26 2 views
1

내가 Reddit에서 가져 오는 JSON 개체에서 데이터를 추출하려고하는데 SwiftyJSON 라이브러리를 사용할 때 문제가 발생했습니다 (여기에서 찾을 수 있습니다 : https://github.com/SwiftyJSON/SwiftyJSON).SwiftyJSON의 문제

다음 URL에서 Reddit의 API "http://www.reddit.com/r/aww/hot.json"을 호출합니다. 목록 작성자부터 시작하여 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 클래스를 호출 볼 수 있습니다.

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

내가 여기서 잘못하고 있는지 확실하지 않습니다.

도움 주셔서 감사합니다.

+0

해당 URL에 의해 반환 된 JSON 보면 당신은 [ "데이터"] 그 JSON을주의해야 [ "어린이"] 객체의 배열 될 것입니다 '저자'가 포함 된 개체가 아닙니다. –

답변

2

이것을 시도해야합니다. 스위프트 3.0.1에 대한

let authorName = json["data"]["children"][0]["data"]["author"].stringValue 
0

:

let authorName = json["data"]["children"][0]["data"]["author"].string