У меня есть данные с сервера, такие как
[
{
"id": 1,
"name": "16",
"children": "",
"products": [
{...},
{...}
]
},
{
"id": 2,
"name": "17",
"children": "",
"products": [
{...},
{...}
]
}
]
, поэтому я сохраняю их как [[String: Any]]
, а Any
потому, что в значениях могут быть Int
, String
или Dict
,
Дело в том, что ключ "children" может быть NSConstantstring
и может быть приведен к String
, а также может быть NSArray
и также может быть приведен к [[String: Any]]
.Поэтому мне нужно найти способ определить тип этого значения.Но все, что я пробовал, вызывало ошибку.
Как я могу это исправить?
UPD не так много кода)
внутри ответа alamofire:
let data = responseJSON.result.value! as! [String: Any]
let subCategory = data["children"] as! [[String: Any]]
//check
for item in subCategory {
print(type(of: item["children"]!))//__NSArrayI or __NSCFConstantString
}
, если я попробую что-то вроде print(type(of: item["children"] as! String))
он печатает String
, если есть __NSCFConstantString
, но если нет - вылетает с ошибкой Could not cast value of type '__NSArrayI' (0x10934fe48) to 'NSString' (0x1083e8568)
UPD 2 нет проблем с данными, все проанализировано и сохранено правильно, а также правильно распечатано