Словарь проблем при переводе в массив

-2

Мое приложение падает, когда я использую эту строку кода.

self.cartProducts = responceDictionary!["result"] as! [AnyObject]

responceDictionary - это данные JSON, которые мне нужно хранить в массиве как AnyObject.

Может ли кто-нибудь указать мне в правильном направлении?

  • 1
    Вы не можете преобразовать словарь в массив, типы не связаны. Если объект должен быть словарем, почему бы вам не преобразовать его в словарь? Ваш вопрос связан с этим ?
  • 0
    Пожалуйста, добавьте формат вашего ответа. Как говорит @vadian, если это словарь, вы не можете преобразовать его в массив.
Показать ещё 10 комментариев
Теги:

2 ответа

0
Лучший ответ

Как обсуждалось в комментариях, значение для ключевого result, скорее всего, является словарем.

При получении данных из удаленного источника избегайте восклицательных знаков и безопасно разворачивайте эти опции:

if let responce = responceDictionary, let result = responce["result"] as? [String:Any] {
   print(result)
   // go on extracting data from result
]
  • 0
    Как бы я назначил результат для cartProducts, так как между [String: Any] и AnyObject будет конфликт?
  • 0
    Если cartProducts - это массив, вы не можете присвоить result . Прочитайте JSON, вам нужно извлечь нужный массив из словаря result
Показать ещё 2 комментария
0

Попробуй это:

guard let cartProducts = responceDictionary?["result"] as? [AnyObject] else { return }
self.cartProducts = cartProducts

Ещё вопросы

Сообщество Overcoder
Наверх
Меню