Swift2.2からSwift3.0にソースコードの移行を取り組んでいます。

JSONデータを取得して表示するアプリを作成しています。

for item in items as! NSArray {

上記の該当ソースコードでフィールドitemが複数要素となっていましてその複数要素を定数itemsとしてNSArrayにキャストして1要素を定数itemに取り出しています。以前のSwift2.2では正しく動作していたのですが、Swift3.0ではNSArrayにキャストがうまく動作せずに修正方法に苦慮しております。

アドバイスをいただけないでしょうか?

[Swift3.0に変換したソースコード]

var okashiList :[(maker:String, name:String, link:String, image:String)] = []

func searchOkashi(keyword : String){

    let keyword_encode = keyword.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!

    let session = URLSession(configuration: URLSessionConfiguration.default, delegate:nil, delegateQueue:OperationQueue.main)

    let task = session.dataTask(with: URLRequest(url: Foundation.URL(string: "http://www.sysbird.jp/toriko/api/?apikey=guest&format=json&keyword=\(keyword_encode)&max=10&order=r")!), completionHandler: {
        (data, response, error) in

        do {

            let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! NSDictionary

            if let items = json.object(forKey: "item") {

                for item in items as! NSArray {

                    // コンパイルエラーが発生
                    guard let maker = item.object(forKey: "maker") else {
                        continue
                    }

                    // コンパイルエラーが発生
                    guard let name = item.object(forKey: "name") else {
                        continue
                    }

                    // コンパイルエラーが発生
                    guard let link = item.object(forKey: "url") else {
                        continue
                    }

                    // コンパイルエラーが発生
                    guard let image = item.object(forKey: "image") else {
                        continue
                    }

                    let data = (maker as! String,name as! String,link as! String,image as! String)

                    self.okashiList.append(data)

                }
            }

        } catch {
            // エラー
        }

    })
    task.resume()
}