2017-07-25 10 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 

アルしたがって、オプションを試してみてください:.mutableContainers - > options:JSONSerialization.ReadingOptions.allowFragments

+0

NSArrayとNSStringの両方が試されました。しかし、それは変換エラーを与える – himesh

+0

私にエラーメッセージを送信 –

+0

場合parseJSON = json { myBoard:文字列! myBoard = parseJSON ["成功"]として! String //この状態では、 'String'型の値を期待される引数型 'Int'に変換できません。 print(myBoard) – himesh

関連する問題