首页 > 解决方案 > 在 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。

标签: jsonswiftstructjsondecoder

解决方案


请看结构BookReturned。确实没有会员title

你必须得到数组的第一项book,有title

let title = mybook.book.first?.title

如果数组包含更多项目,则需要一个循环。


推荐阅读