簡體   English   中英

Swift/MySql/PHP - “無法讀取數據,因為它的格式不正確。” 錯誤

[英]Swift/MySql/PHP - "The data couldn’t be read because it isn’t in the correct format." error

當我嘗試將 mysql 數據加載到我的 swift 程序中時出現此錯誤。 在將其放入 SwiftUI 之前,我試圖在控制台中獲取輸出。 當我用斷點調試時,我可以看到加載到變量中的數據,但 Swift 無法讀取它。 如果我找到任何修復,觀看了許多視頻,但沒有運氣。

錯誤:無法讀取數據,因為它的格式不正確。

在這一行出現錯誤: let postsData = try JSONDecoder().decode([Post].self, from: data)

任何幫助都非常感謝,因為我在這里已經快一個星期了。 謝謝你。

這是我的完整代碼。

  • Post.swift 結構:
import Foundation

struct Post: Codable {
    var Name: String!
    var City: String!
}
  • JsonViewController.swift 類:
import UIKit

class JsonViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        fetchPostData { (posts) in
            for post in posts {
                print(post.Name!)
            }
        }
    }
    
    func fetchPostData(completionHandler: @escaping ([Post]) -> Void) {
        
        let url = URL(string: "https://localhost/service.php")!
        let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
            
            guard let data = data else { return }
            
            do {
                
                let postsData = try JSONDecoder().decode([Post].self, from: data)
                
                completionHandler(postsData)
            }
            catch {
                let error = error
                
                print(error.localizedDescription)
                
            }
            
        }
        task.resume()
    }

}

Web 瀏覽器中的輸出 - 來自 service.php:

[{"Name":"John","City":"Sydney"}]

盡管數據在 Web 瀏覽器中以 JSON 格式正確加載,但如果您的 service.php 文件在 php 標簽之前和之后有任何 HTML 標簽等,它將無法在 Swift 中正確解析。 非常愚蠢的錯誤,但希望對其他人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM