JSONから多次元配列を取り込み、NSArrayオブジェクトに格納しようとしています。私はピッカーを使ってそのオブジェクトを反復したいと思う。これはSwift 2で機能しましたが、すぐに私はswift 3に変換されました。私のpickerView関数には、「Any型には添え字メンバーがありません」というエラーが出ます。Swift 3 JSON多次元NSArrayを文字列に変換する
関連するコード(名前と顔が変更された):
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let ticket_number = pvds_ticket_number[row]["ticket_number"] as! String
let customer_name = pvds_ticket_number[row]["customer_name"] as! String
return "\(ticket_number) - \(customer_name)"
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
let ticket_number = pvds_ticket_number[row]["ticket_number"] as! String
txt_ticket_number.text = ticket_number
}
func get_tickets()
{
let userID = UserDefaults.standard.string(forKey: "userID")
let url_path: NSString = "my_url_that_isnt_relevant" as NSString;
let url_path_formatted: NSString = url_path.addingPercentEscapes(using: String.Encoding.utf8.rawValue)! as NSString
let url = URL(string: url_path_formatted as String)
let session = URLSession.shared
let task = session.dataTask(with: url!, completionHandler: {data, response, error -> Void in
if(error != nil) {
// If there is an error in the web request, print it to the console
print(error!.localizedDescription)
}
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
if let parseJSON = json {
if let results: NSArray = parseJSON["results"] as? NSArray{
DispatchQueue.main.async(execute: {
self.pvds_ticket_number = results as! [Any] as NSArray
self.pv_ticket_number.reloadAllComponents()
})
}
}
} catch {
print("something went wrong")
}
})
task.resume()
}
これらの行は、エラーを示す:
としてticket_number = pvds_ticket_number [行] [ "ticket_number"]ましょう!文字列
let customer_name = pvds_ticket_number [row] ["customer_name"]を!文字列
これをチェックしましたか?http://stackoverflow.com/search?q=%5Bswift%5DType+Any+has+no+subscript+members –
[これらの53の結果](http://stackoverflow.com/ 「任意の下付き文字がありません」と検索された場合、検索?tab = votes&q =%5bswift3%5d%20Any%20has%20no%20subscript%20members)が役に立ちましたか? – Moritz