如何根据特定的排序顺序对自定义对象进行快速编码。 我正在使用快速编码协议。
{
"data": {
"team": [
{
"name": "XYZ",
"designation": "Managing director - South Asia"
},
{
"name": "XYZ",
"designation": "Managing director - South Asia"
}
],
"recruiterName": "Lorium Ipsem text",
"respondsQuickly": "1"
},
"metaData": {
"sortOrder": [
"respondsQuickly",
"recruiterName",
"team"
]
}
}
在这里,我需要根据sortOrder对象对数据对象进行排序。 现在这是一个Model对象
struct Welcome: Codable {
let data: DataClass?
let metaData: MetaData?
}
struct JDDataClass: Codable {
let team: [Team]?
let recruiterName, respondsQuickly: String?
}
struct Team: Codable {
let name, designation: String?
}
struct JDMetaData: Codable {
let sortOrder: [String]?
}
我无法同时将All Keys作为其模型。 它现在不是JSON或字典,因为它是Codabale协议swift的自定义对象。
所需的输出:
let myArray = [
{"respondsQuickly": "1"},
{"recruiterName": "Lorium Ipsem text"},
{"team": [
{
"name": "XYZ",
"designation": "Managing director - South Asia"
},
{
"name": "XYZ",
"designation": "Managing director - South Asia"
}
]
}
]
答案 0 :(得分:1)
这是工作场所代码。您可以检查一下。我希望这将有所帮助。 arrResult正在保存您的答案。
butter_bandpass_filter
答案 1 :(得分:0)
对结构键进行排序没有任何意义。当访问每个元素的成本相同时,为什么要对对象的变量进行排序。
也许您当前的结构是错误的。
if t > 2 and not trigger_sent:
如果您希望上面提到的输出具有这样的结构,这将更有意义:
{
"data": {
"team": [
{
"name": "XYZ",
"designation": "Managing director - South Asia"
},
{
"name": "XYZ",
"designation": "Managing director - South Asia"
}
],
"recruiterName": "Lorium Ipsem text",
"respondsQuickly": "1"
},
"metaData": {
"sortOrder": [
"respondsQuickly",
"recruiterName",
"team"
]
}
}
不过,如果要使用当前结构实现此输出,则可以使用类似Reflection的方法在运行时读取结构的属性并对其进行相应排序。不用说,这种解决方案很难看,应该避免。