2016-04-21 15 views
0

私のプロジェクトにSwiftyJSON.swiftファイルを追加しました。ウェブからデータを取得しようとしています。今私のプロジェクトが実行されますが、私が辞書のjsonから配列を取得しようとしている行までです。私はどこに問題があるのか​​理解できませんが、私はちょうど始めに素早く勉強しているので、それは非常にばかげたものでなければならないと推測しています。iOSプログラミングでJSONデータを取得する

私はこのURLからのすべてのムービーの名前をコンソールに表示しようとしています。このパフォーマンスを達成するために管理した後、ムービーの要約を取得してから、TableView 。

import UIKit 

class FirstViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     //grab the status code and check if the transfer was successful == 200 
     let requestURL: NSURL = NSURL(string: "https://itunes.apple.com/us/rss/topmovies/limit=50/json")! 
     let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL) 
     let session = NSURLSession.sharedSession() 
     let task = session.dataTaskWithRequest(urlRequest) { 
      (data, response, error) -> Void in 

      let httpResponse = response as! NSHTTPURLResponse 
      let statusCode = httpResponse.statusCode 

      if (statusCode == 200) { 

       //sort through the stations key and cast the data into an array of dictionaries 
       do{ 
        let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) 
        print("bbbbb") 

// From here on, it doesn't print anything anymore 
        if let movies = json["entry"] as? [[String: AnyObject]] { 
         print(movies) 
         print("test") 

         for movie in movies { 

          if let name = movie["name"] as? String { 
           print("mmmm") 
           print("%@ (Built %@)",name) 

          } 
         } 

        } 

       }catch { 
        print("Error with Json: \(error)") 
       } 
      } 
     } 
    task.resume() 
+0

「映画」を取得しようとする直前に、 "print(" json contents is \(json) ")' 'を介して' json'辞書の内容を出力してみてください。実際には「エントリ」があるのでしょうか?私はそこにあると推測していますが、それはおそらく他のものの中に入れ子になっているでしょう。 –

+0

これを見て、私は暗闇の中で刺し、jsonにはエントリというキーがないと言います。 –

+0

@MichaelDautermann私はムービーを取得しようとする前にプリントラインを追加しましたが、それでも何も印刷されません –

答えて

1

entryまた.array

if let movies = json["entry"].array { 
    for movie in movies { 
    // Do stuff 
    } 
} 

一般的なチップを使用して、JSON配列です。値をキャストしない。むしろ機能に組み込まれて使用

movie["something"] as? String 


更新

あなたがacctually全くSwiftyJSON.swiftを使用していないことを私は見近づいあなたのコードに探しています。あなたはこのようなJSONテキストを解析し、JSONオブジェクトを取得Swiftyを使用するには :

let jsonObj = JSON(data: yourData) // data is a NSData 

をドキュメントで別のを見てください:

https://github.com/SwiftyJSON/SwiftyJSON

私はあなたがなぜ」セクションを読んでいると思いますSwiftの典型的なJSONの処理は良くありませんか? "このセクションでは、Swiftのjsonを管理するネイティブで「悪い」方法について説明します。実際のドキュメントはさらに下にあります。

+0

まだ動作していません、それはコンソールでbbbbbを出力します。それ> :( –

関連する問題