【发布时间】:2018-12-30 23:17:37
【问题描述】:
struct FAQList: Codable {
let valid: Bool?
let message: String?
let faqs: [String: [FAQ]]?
}
struct FAQ: Codable {
let name, question, answer: String?
}
是我的数据模型。
{
"valid": true,
"message": "Faqs fetched successfully!",
"faqs": {
"FAQ8": [
{
"name": "FAQ8",
"question": "Question 2",
"answer": "Answer 2"
},
{
"name": "FAQ8",
"question": "Question 3",
"answer": "Answer 3"
},
{
"name": "FAQ8",
"question": "Question 4",
"answer": "Answer 4"
},
{
"name": "FAQ8",
"question": "Question 5",
"answer": "Answer 5"
},
{
"name": "FAQ8",
"question": "Question 6",
"answer": "Answer 6"
},
{
"name": "FAQ8",
"question": "Question 7",
"answer": "Answer 7"
},
{
"name": "FAQ8",
"question": "Question 8",
"answer": "Answer 8"
},
{
"name": "FAQ8",
"question": "sdrt",
"answer": ""
}
],
"abcs1sd122": [
{
"name": "abcs1sd122",
"question": "sD",
"answer": "ssaf"
}
],
"ASDFG": [
{
"name": "ASDFG",
"question": "kalpana",
"answer": "UI developer"
},
{
"name": "ASDFG",
"question": "asDFGHJWQ",
"answer": "ERTYU"
},
{
"name": "ASDFG",
"question": "sdede",
"answer": "ERTYU"
}
],
"test": [
{
"name": "test",
"question": "ASdfg",
"answer": "AASDFTRYU"
},
{
"name": "test",
"question": "ASDRFT",
"answer": "Q"
},
{
"name": "test",
"question": "SADRTY",
"answer": "WQEW3E45R6"
},
{
"name": "test",
"question": "zxcVG",
"answer": "Sadfgh"
},
{
"name": "test",
"question": "saesrtyu",
"answer": "3q5w46e567890"
}
]
}
}
是我的回应。
现在。我需要过滤这个 'faqs' 字典以形成基于键的主题列表数组。
像 'FAQ8' 或 'abcs1sd122' 是一个数组,由所有问题分别具有 'name' 为 'FAQ8' 或 'abcs1sd122' 组成。
我用过这个,
let FAQ8 = self.viewModel.faqsList.faqs?.filter({ $0.key == "FAQ8" })
但它显示错误。
请建议实现这一目标的最佳方法。
【问题讨论】:
-
错误是什么?
-
为什么所有结构成员都声明为可选? JSON 清楚地包含所有键
标签: ios arrays swift dictionary filter