[英]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)
任何幫助都非常感謝,因為我在這里已經快一個星期了。 謝謝你。
這是我的完整代碼。
import Foundation
struct Post: Codable {
var Name: String!
var City: String!
}
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.