gpt4 book ai didi

ios - 使用 Swift 4 在 iOS 中将多级 JSON 解码为结构

转载 作者:搜寻专家 更新时间:2023-11-01 05:55:10 26 4
gpt4 key购买 nike

<分区>

我正在尝试将我的数据解码为结构。这是我的数据结构之一的 JSON 示例:

{
"name": "abc",
"owner": "bcd",
"fallbackLanguage": "tr",
"localizedValues": {
"en": {
"description": "Lorem Ipsum Dolor Sit Amet"
},
"de": {
"description": "Sed Do Eiusmod Tempor Incididunt"
},
"tr": {
"description": "Consectetur Adipisicing Elit"
}
}
}

这个 JSON 对象的结构是:

struct X {
let name: String
let owner: String
let fallbackLanguage: String

let description: String
}

解码 nameownerfallbackLanguage 不是问题并且已经完成。这是当前的 CodingKeyinit(from:)

struct CodingKeys: CodingKey {
var stringValue: String
init?(stringValue: String) {
self.stringValue = stringValue
}

var intValue: Int?
init?(intValue: Int) {
self.intValue = intValue
self.stringValue = "\(intValue)"

}

static func makeKey(name: String) -> CodingKeys {
return CodingKeys.init(stringValue: name)!
}
}

init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)

owner = try container.decode(String.self, forKey: CodingKeys.makeKey(name: "owner"))
name = try container.decode(String.self, forKey: CodingKeys.makeKey(name: "name"))
fallbackLanguage = try container.decode(String.self, forKey: CodingKeys.makeKey(name: "fallbackLanguage"))

// FIXME: decode localizedValues into `description`
}

问题是解码description,因为它保存在多级字典中,并且它的值会因设备区域设置而改变。

在此示例中,如果设备区域设置不是endetr,它将回退到tr 因为 fallbackLanguage 是 tr

任何帮助和建议都会很棒。谢谢。

注意:我包括了this gist通过 inamiy编码/解码字典和数组。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com