2017-02-10 27 views
-2
do{ 
      //converting response to NsDictionary 
      var myJSON:NSDictionary! 
      myJSON=try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any] as NSDictionary! 

       //getting the json response 
      let questions:NSArray = myJSON["questions"] as! NSArray 
      //looping through all the array 
      for i in 0 ..< questions.count{ 
       //getting the json for each index 
      //let i=0 


      self.questionId = questions[i]["id"] as! Int 
       let questionName:String = questions[i]["ques"] as! String? 
       let questionopta:String = questions[i]["opta"] as! String! 
       let questionoptb:String = questions[i]["optb"] as! String! 
       let questionoptc:String = questions[i]["optc"] as! String! 
       let questionoptd:String = questions[i]["optd"] as! String! 
+1

溫馨提示:儘量不使用的NSArray/NSDictionary的(尤其是當你在做兩管型:'作爲![字符串:任何]!作爲NSDictionary的'),使用SWIFT類型。你也需要指定哪一行導致問題。我猜你的問題在'let questionName'上?如果是,請問這個問題:'問題'是一個'NSArray'。但是誰告訴編譯器''問題''是一個字典,你可以用'[「ques」]來訪問它的數據? – Larme

+0

感謝您的指導 –

回答

1

試試這個..

do{ 
     var myJSON:[String:Any]! 
     myJSON = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any] 

     //getting the json response 
     let questions = myJSON["questions"] as! [[String:Any]] 
     //looping through all the array 
     for obj in questions{ 
      self.questionId = obj["id"] as! Int 
      let questionName = obj["ques"] as! String 
      let questionopta = obj["opta"] as! String 
      let questionoptb = obj["optb"] as! String 
      let questionoptc = obj["optc"] as! String 
      let questionoptd = obj["optd"] as! String 

請不要打力展開..這個代碼是隻爲你指導。

0
do { 
    if let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String : Any] { 

     for question in json["questions"] as? [[String : Any]] ?? [] { 

      guard 
       let questionId = question["quid"] as? Int, 
       let questionName = question["ques"] as? String, 
       let questionopta = question["opta"] as? String, 
       let questionoptb = question["optb"] as? String, 
       let questionoptc = question["optc"] as? String, 
       let questionoptd = question["optd"] as? String else { continue } 

      self.questionId = questionId 

      // ... 
     } 
    } 
} catch { 
    print(error) 
} 
相關問題