json - 在 Swift 中使用 Structs 的 JSON 解码器没有成员错误问题
问题描述
我曾经https://app.quicktype.io/
创建结构来解码一些 JSON,它成功地解码了它。
但是,当我尝试访问主对象中的元素时,我得到一个没有成员错误,如下所示:
Value of type 'myClass.BookReturned?' has no member 'title'.
这是 JSON 的样子:
{"book":[{"title":"Dreams of Trespass","author":"Fatimah Mernisse","pic":""}]}
struct BookReturned: Codable {
let book: [Book]
}
// Book
struct Book: Codable {
let title, author, pic: String
}
这就是代码在第二行出现错误时的样子
let mybook = try? JSONDecoder().decode(BookReturned.self, from: data)
let author = mybook.title//GIVES THE ERROR
获得称号的正确方法是什么?如果 JSON 格式不正确,我也可以更改 JSON。
解决方案
请看结构BookReturned
。确实没有会员title
。
你必须得到数组的第一项book
,有title
let title = mybook.book.first?.title
如果数组包含更多项目,则需要一个循环。
推荐阅读
- elasticsearch - 如何修改logstash以便将失败的消息发送到SQS DLQ
- sql - 将同一表中的一列中的值更新为 SQL Server 中的另一列
- ios - 在 iOS 13 及更高版本中,当应用程序被杀死时,launchoptions 在单击删除通知时重新调整 nil
- c++ - 错误无法将“float*”转换为“float”作为回报
- laravel - 将 Laravel Test 7 和 Laravel Passport 9.3 与 Personal Access Client 一起使用会出现异常“尝试获取非对象的属性 'id'”
- amazon-web-services - AWS DMS 源数据库事务边界
- mysql - 如何使用 MYSQL 在最终表中包含所有列的默认值为 0 的缺失行?
- kubernetes-ingress - 有和没有主机的入口
- javascript - 我可以在 Javascript 中设置一个二维数组作为键吗?
- python - Python 初学者 ML 项目问题