【发布时间】: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 标签。清理文件后工作正常。感谢您的回复。