提问人:Ceri Turner 提问时间:10/28/2023 更新时间:10/28/2023 访问量:47
如何解析 JSON 中的数据
How do I parse data from JSON
问:
添加了PHP和Swift标签,因为我不确定问题是否出在哪里。
我将使用以下内容从 swift 中的网页获取信息,但我收到一条无法解码的消息
func loadData() async {
guard let url = URL(string: "****") else {
print("Invalid URL")
return
}
do {
let (data, _) = try await URLSession.shared.data(from: url)
if let decodedResponse = try? JSONDecoder().decode(Response.self, from: data) {
print("Load Data 3")
dims = decodedResponse.dims
} else {
print("Unable to decode")
print(String(data: data, encoding: .utf8) ?? "")
}
} catch {
print("Invalid data")
}
}
它调用的页面上的 php 代码是
$sql = "SELECT name,id FROM `DIMs` ORDER BY dimType ASC, released DESC, name ASC LIMIT 2";
$q = $pdo->prepare($sql);
$q->execute();
if($q->errorCode() != 0) {
$errors = $q->errorInfo();
echo($errors[2]);
}
foreach ($q->fetchAll() as $row) {
$dims[] = array('id' => $row['id'], 'name' => $row['name']);
}
echo(json_encode($dims));
在浏览器中查看时,它给了我
[{"id":124,"name":"25th Anniversary"},{"id":126,"name":"Angoramon BE"}]
当打印decodedResponse时,我得到的与在浏览器中查看它相同。
我一直在按照以下链接中的教程进行操作,并尝试根据我的要求进行修改。如果我使用教程中的内容,它可以正常工作
答: 暂无答案
评论
try?
do
catch
Response
[Response].self
try?
try
print("Invalid data")
print("Invalid data: \(error)")
.decode([Response].self
Content-Type