2017-07-25 35 views
0

我一直試圖通過我的postString從數據庫中獲取某些值,但它不返回任何值。 Php經過測試,其工作正常,任何幫助將不勝感激。以下是代碼。swift無法解析php數據

import UIKit 

class DisplayDetailedViewController: UIViewController { 

    var role = String() 
    var date = String() 
    var city = String() 
    var mark_ref = String() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    func getData(){ 
     let myUrl = URL(string:"http://xxxxxx.co.in/xxxxx/show_report1.php") 

     var request = URLRequest(url: myUrl! as URL) 
     request.httpMethod = "POST" 

     let postString = "city=\(city)&date=\(date)&market_rep=\(mark_ref)" 
     request.httpBody = postString.data(using: String.Encoding.utf8) 

     let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in 
      DispatchQueue.main.async{ 
        if error != nil{ 
         print("error is\(String(describing: error))") 
        } 
        do{ 
         let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary 

         if let parseJSON = json { 

          let myBoard : String! 
          myBoard = parseJSON["success"] as! String? 

          print(myBoard) 
         } 
        } 
        catch { 
         print(error) 
        } 
      } 
     } 
     task.resume() 
    } 
} 
+0

請在您的問題中包含預期的JSON響應,以便我們可以幫助解析它。一些通用的建議:'DispatchQueue.main.async'不需要,'URLSession.shared.dataTask'已經是一個異步函數。不要在'Swift'中使用'NSDictionary',而要使用其原生的'Swift'對應詞'Dictionary'。 –

+0

添加json響應 –

回答

0

嘗試1:替換下面線(的NSDictionary)

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

嘗試2:替換下面線(NSArray的)

let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSArray 

嘗試3:替換下面線(的NSString)

let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSArray 

Al所以嘗試選擇:.mutableContainers - >選項:JSONSerialization.ReadingOptions.allowFragments

+0

NSArray和NSString都試過。但它給轉換錯誤 – himesh

+0

發送給我錯誤消息 –

+0

如果讓parseJSON = json {0} {0} {0} {0}讓myBoard:String! myBoard = parseJSON [「success」] as! String //此狀態不能將類型'String'的值轉換爲期望的參數類型'Int' print(myBoard) – himesh