У меня есть ответ ниже JSON.И я хочу получить все «данные», которые [[правила], «предпочтения», «цели»]] с использованием метода .keys.Но я не мог получить массив allkeys, используя функцию .keys.Я также приложил свой фрагмент кода.если вы сталкивались с этим, предложите мне избавиться от этой проблемы.
Хотя я могу получить эти allKeys, используя ObjectMapper и нативные объекты Dictionary.Мне просто нужно знать, почему я не смог добиться этого с помощью Codable.
Мой ответ json
{
"statusCode": 200,
"status": "success",
"message": null,
"data": {
"rules": {
"goals": {
"min": "1",
"max": "3"
}
},
"preference": [
1,
2,
3
],
"goals": {
"total": 4,
"data": []
}
}
}
Мой код Фрагмент кода:
struct MeetingsDataModal: Codable {
let statusCode: Int?
let status: String?
let message: String?
let data: Results?
enum CodingKeys: String, CodingKey {
case statusCode = "statusCode"
case status = "status"
case message = "message"
case data = "data"
}
func allkeys() {
}
}
struct Results : Codable {
let rules: Rules?
let preference: [Preference]?
let goals: Goals?
enum CodingKeys: String, CodingKey {
case rules = "rules"
case preference = "preference"
case goals = "goals"
}
}
struct Rules : Codable {
}
struct Preference : Codable {
}
struct Goals : Codable {
}
Мои ожидания
let content = try JSONDecoder().decode(MeetingsDataModal.self, from: (response as? Data)!)
print(content.data.keys)
Но я получаю,
Значение типа 'Results?'не имеет членских «ключей»