2016-11-02 16 views
0

私のサーバーからデータを取得していて、それをJSONに変換しようとしています。私のPHPスクリプトでは、私はJSONに変換して、それを送信しています。ここでJSONデータがnilを返す

は私のコードです:

let url: NSURL = NSURL(string: "https://xxxxxx.com/myFile.php")! 
     let request:NSMutableURLRequest = NSMutableURLRequest(url: url as URL) 
     let bodyData = "username=\(username.text!)&password=\(password.text!)" 
     request.httpMethod = "POST" 
     request.httpBody = bodyData.data(using: String.Encoding.utf8); 
     request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type") 
     NSURLConnection.sendAsynchronousRequest(request as URLRequest, queue: OperationQueue.main) 
     { 
      (response, data, error) in 
      if(error == nil){ 
       var responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue) 

       DispatchQueue.main.async { 
        let viewController = self.storyboard?.instantiateViewController(withIdentifier: "nextVC") as! ViewController 
        viewController.importData = data! 
        viewController.modalTransitionStyle = .crossDissolve 
        self.present(viewController, animated: true, completion: nil) 
       } 
      } 

     } 

のViewController

var importData = Data() //when I cast this to NSString and print it I see the JSON correctly. 
let json = JSON(data: importData) // this prints nil. 

任意の理由は?

+0

urを試してみましたか? –

+0

私は質問を更新しました。 – joethemow

+2

*「JSONが正しく表示されています」* - それは問題ありませんが、表示されません。この問題を示す自己完結型の再現可能な*例を投稿してください。 –

答えて

0

応答を文字列に変換し、サーバーからの応答が有効かどうかを確認してください。

var dataString = String(data: importedData, encoding: .utf8) 
print(dataString) 
+0

はい、データを返していますが、' \ n'の束で非常に醜いようです – joethemow

+0

文字列をデータとして作成し、 'JSONSerialization'を使用します –

+0

この印刷された文字列データをJSONフォーマッタで実行して、有効なJSONを確認してください。 – Lazy

関連する問題