Reputation: 1443
Guys i want to get image from JSON for specific category. I use Alamofire to get data from JSON. I can get separate all images and all category. What i want to do is: for example if category == Bar, i want to get category_image.
case let x where x == "Bar" || x == "Sashimi" || x == "Pizza": imageName = "cafe"
Alamofire.request("http://95.46.59.150:9095/api/v1/institution/get-all-institutions", method: .get, parameters: nil, encoding: URLEncoding.default, headers: nil).responseJSON {
response in
switch response.result {
case .success:
if let objJson = response.result.value as! [String: Any]? {
for (key,value) in objJson {
if let result2:[[String:Any]] = value as? [[String:Any]]{
for dict in result2 {
for (key,value) in dict {
if key["category"] == "bar"{
}
if key == "category_image" {
if let str1: String = value as? String {
Allimages.append(str1)
}
}
}
}
}
}
}
case .failure(let error):
print("Error: \(error)")
}
}
JSON
{
"data": [
{
"id": 1,
"socials": {
"vk": "https://vk.com/cafe_teplominsk",
"instagram": "https://www.instagram.com/teplo_cafe/",
"facebook": "https://www.facebook.com/cafeteplominsk"
},
"short_title": "#тепло",
"title": "Кафе #тепло",
"latitude": "53.93820000",
"longitude": "27.58520000",
"image": "https://static.relax.by/images/common/catalog_round_logos/d3e4a58f89cdf9ebba2b6759a6e1fe08.jpg",
"site": "http://cafeteplo.by/",
"description": "Невозможно представить заведение с более теплой и радушной атмосферой.\r\n\r\nПомимо отличного сервиса и качественного обслуживания кафе #Тепло поразит Вас необыкновенным интерьером в стиле Прованс с абажурами и оригинальными декорациями.\r\n\r\nХорошо там, где #тепло!",
"phone": "+375 29 639 22 22",
"work_time": "С 09:00 до 23.00",
"category": "Bar",
"category_image": "http://95.46.59.150:9095/storage/photos/microphone.png",
"features": "{\"Wi-Fi\": \"Есть\", \"Залы\": \"Зал (85 мест) для некурящих\", \"Сайт\": \"cafeteplo.by\", \"Кухня\": \"Европейская, Итальянская\", \"Метро\": \"Академия наук\", \"Район\": \"Советский\", \"В меню\": \"Пицца, Обеденное меню, Завтраки, Морепродукты, Стейки, Доставка еды, Десерты, Салаты и холодные закуски\", \"Банкет\": \"До 16 чел.\", \"Музыка\": \"Тихая фоновая\", \"Курение\": \"Запрещено\", \"Описание\": \"на портале relax.by\", \"Парковка\": \"Есть\", \"Для детей\": \"Да\", \"Кинотеатры\": \"Октябрь\", \"Предоплата\": \"в размере 30%\", \"Средний счет\": \"$$\", \"Кондиционеры\": \"Есть\", \"Тип заведения\": \"Кафе\", \"способ оплаты\": \"Наличный расчет, Безналичный расчет, Оплата пластиковой картой\", \"Пицца на вынос\": \"Есть\", \"Разливное пиво\": \"Zlatý Bažant, Heineken, Ирландское, Бельгийское, Белорусское\", \"Количество мест\": \"85\", \"Торговые центры\": \"Европа\", \"Большая компания\": \"Да\", \"Дисконтные карты\": \"карта друга со скидкой 10%\", \"Популярные места\": \"парк Дружбы Народов (пл. Бангалор), Логойский тракт\", \"Быстро перекусить\": \"Да\", \"Закрытие заведения\": \"Да\", \"Национальная кухня\": \"Итальянская\", \"Романтический ужин\": \"Да\", \"Предварительный заказ\": \"существует\", \"Условия закрытия залов\": \"50 рублей на человека\", \"Оплата пластиковой картой\": \"Есть\", \"Банкет на открытом воздухе\": \"Нет\", \"Условия закрытия заведения\": \"обсуждается с менеджером\", \"Организационные возможности\": \"Банкетное обслуживание, Вечеринки, Выездное обслуживание, Деловые переговоры, День рождения, Конференция, Корпоративное обслуживание, Организация детских праздников, Презентации, Свадьба, Семинар\", \"Количество залов под мероприятия\": \"1\", \"Что клиент может принести с собой\": \"обсуждается при составлении предзаказа\", \"Владение персоналом иностранными языками\": \"Английский\"}",
"address": "Минск, ул.Богдановича 138",
"created_at": "20.07.2017 13:10:42",
"updated_at": "13.07.2018 13:36:02"
},
Upvotes: 0
Views: 88
Reputation: 6992
There's no need to iterate over response dictionary. Cast response.value
to dictionary, extract data
object from it, cast data
to dictionary and check for whatever you need
guard let json = response.value as? [String : Any] else { return}
guard let data = json["data"] as? [Sring : Any] else { return }
guard let category = data["category"] as? String else { return }
if (category == "bar") {
{
let imageUrl = data["category_image"]
}
Upvotes: 1