首页 > 解决方案 > 在 SwiftUI 中将 JSON 数据作为对象加载

问题描述

遵循关于 swiftui 的苹果开发者教程,https://developer.apple.com/tutorials/swiftui/

我想对其进行一些修改,以在对象 Landmark 中包含更多字段:

例如:

struct Landmark: Hashable, Codable, Identifiable {
    var id: Int
    var name: String
    var park: String
    var state: String
    var description: String
    var isFavorite: Bool
    var isFeatured: Bool
    var comment: String // example, added this field
}

然而,对于这个领域,我想用它来让用户输入评论。该字符串在 .json 文件中不可用,因此无法在“加载”json 数据的阶段填写此信息。

我发现当这个字段在 JSON 文件中不可用时,这会导致错误和应用程序崩溃。我该如何解决这个问题?对象中的所有字段都必须出现在 JSON 文件中吗?

标签: jsonswiftswiftui

解决方案


由于该comment字段可能不存在,因此您应该将其设为可选类型:

struct Landmark: Hashable, Codable, Identifiable {
    var id: Int
    var name: String
    var park: String
    var state: String
    var description: String
    var isFavorite: Bool
    var isFeatured: Bool
    var comment: String? // example, added this field
}

推荐阅读