【问题标题】:Swift/MySql/PHP - "The data couldn’t be read because it isn’t in the correct format." errorSwift/MySql/PHP - “无法读取数据,因为它的格式不正确。”错误
【发布时间】:2020-09-30 01:32:00
【问题描述】:

当我尝试将 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"}]

【问题讨论】:

  • 这个好像和php没什么关系
  • 实际上,我刚刚发现了我的 service.php 文件的一个问题,它有几个导致问题的 html 标签。清理文件后工作正常。感谢您的回复。

标签: ios mysql swift xcode


【解决方案1】:

虽然数据在网络浏览器中以 JSON 格式正确加载,但如果您的 service.php 文件在 php 标签之前和之后有任何 HTML 标签等,它将无法在 Swift 中正确解析。非常愚蠢的错误,但希望对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2017-06-12
    • 2018-12-25
    相关资源
    最近更新 更多