如何处理 JSON 数据 swiftUI 中的 `self` 变量
How to Deal With `self` Variable in JSON data swiftUI
我正在尝试访问 Schoology API from my app, designed for our school. I've been using the OAuthSwift 包以获得 OAuth 1 支持。
在 Schoology 的回复中,这出现了多次
"links": {
"self": "https:\/\/api.schoology.com\/v1\/messages\/inbox\/9999999"
}
我遇到困难的地方是将 JSON 解码为 Codable
结构。我不能简单地编码:
struct Links: Codable {
let self:String
}
由于self
已经被swift保留,不能作为变量名使用。是否有另一种方法来解码 Swift 中的 JSON 数据来避免此问题?
下面打印了JSON响应的完整结构:(注意:数组中有很多消息,都共享相同的结构。)
{
"message": [
{
"id": 9999999,
"subject": "Your homework is late, prepare for termination.",
"recipient_ids": "9999999",
"last_updated": 9999999,
"mid": null,
"author_id": 9999999,
"message_status": "read",
"message": null,
"links": {
"self": "https:\/\/api.schoology.com\/v1\/messages\/inbox\/9999999"
}
},
],
"links": {
"self": "https:\/\/api.schoology.com\/v1\/messages\/inbox?start=0&limit=20"
},
"unread_count": "0"
}
如果你已经走到这一步,我感谢你。但是,如果我没有提供足够的信息,所有代码都可以在 API 分支的 GitHub page 上找到。
您可以使用反引号转义保留字:
struct Links: Codable {
var `self`: String
}
如果您不想使用 self
,您可以使用手动定义的 CodingKeys
:[=15= 将 json 键映射到不同的 属性 ]
struct Links: Codable {
var me: String
enum CodingKeys: String, CodingKey {
case me = "self"
}
}
我正在尝试访问 Schoology API from my app, designed for our school. I've been using the OAuthSwift 包以获得 OAuth 1 支持。
在 Schoology 的回复中,这出现了多次
"links": {
"self": "https:\/\/api.schoology.com\/v1\/messages\/inbox\/9999999"
}
我遇到困难的地方是将 JSON 解码为 Codable
结构。我不能简单地编码:
struct Links: Codable {
let self:String
}
由于self
已经被swift保留,不能作为变量名使用。是否有另一种方法来解码 Swift 中的 JSON 数据来避免此问题?
下面打印了JSON响应的完整结构:(注意:数组中有很多消息,都共享相同的结构。)
{
"message": [
{
"id": 9999999,
"subject": "Your homework is late, prepare for termination.",
"recipient_ids": "9999999",
"last_updated": 9999999,
"mid": null,
"author_id": 9999999,
"message_status": "read",
"message": null,
"links": {
"self": "https:\/\/api.schoology.com\/v1\/messages\/inbox\/9999999"
}
},
],
"links": {
"self": "https:\/\/api.schoology.com\/v1\/messages\/inbox?start=0&limit=20"
},
"unread_count": "0"
}
如果你已经走到这一步,我感谢你。但是,如果我没有提供足够的信息,所有代码都可以在 API 分支的 GitHub page 上找到。
您可以使用反引号转义保留字:
struct Links: Codable {
var `self`: String
}
如果您不想使用 self
,您可以使用手动定义的 CodingKeys
:[=15= 将 json 键映射到不同的 属性 ]
struct Links: Codable {
var me: String
enum CodingKeys: String, CodingKey {
case me = "self"
}
}