json - 在 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 文件中吗?
解决方案
由于该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
}
推荐阅读
- c++ - C++ 函数重载 char 调用而不是 double
- javascript - 在 React 组件的 this.state 中修改对象
- python - 如何在 Python 中绘制箭头和范围图?
- omnipay - 如何在 omnypay-stripe 上完成付款
- splunk - Splunk 将第二个查询结果(字段)用于 Linux 主机百分比内存的第一个查询
- android - Gradle 构建卡在 :mymodule:bundleLibRuntimeToJarMyAppRelease
- vue.js - 使用离子模态控制器捕获发射
- javascript - 数组未分配给第一次出现,但完成了所有其他行的任务。“异常”错误
- android - 安卓。TableLayout 不显示。图像视图问题
- cordova - cordova-plugin-barcodescanner 与 PhoneGap 插件 BarcodeScanner2