В чем ошибка в парсинге json?

xcode
swift3

#1

Раньше было json и все работало как надо. Потом после добавления новых параметров, появилась ошибка при его парсинге. Вот этот json: http://api.promo/api/pdd

			let url = "http://api.promo/api/pdd"
		request(url).validate().responseJSON { response in
			switch response.result {
			case .success(let value):
				
				//MARK: - Парсинг заголовка и текста
				let json = JSON(value)
				let img = json["new_pdd"]["logo"].stringValue
				let tittle = img.toLengthOf(length: 22)
				
				let dataDecoded : Data = Data(base64Encoded: tittle, options: .ignoreUnknownCharacters)!
				let decodedimage = UIImage(data: dataDecoded)

				
				//MARK: - Парсинг словарей
				if let result = response.result.value as? [String : Any],
					let main = result["new_pdd"]["items"] as? [[String : String]]{
					for obj in main {
						guard
							let title = obj["category"] as? String,
							let text = obj["text"] as? String
							else {
								return
						}
						let structPDD = NewsPddRules(title: title, text: text)
					}
				}

#2

Ошибка в том, что

result["new_pdd"] 

возвращает переменную типа Any, а у нее нету subscript и она не является Hashable, поэтому вы не можете к ней обращаться как к дикшинари.

P.S. Вставляйте код, а не скриншот кода.


#3

А как это исправить?


#4
if let result = response.result.value as? [String: Any], 
   let newPdd= result["new_pdd"] as? [String: Any],
   let main = newPdd["items"] as? [[String: String]] {
    ...
}

#5

А все понятно, надо было еще к new_pdd сделать как массив [String: Any], чтобы он соответствовал Hashable.
Спасибо большое!