Swift 3 - Как прочитать вывод json из индекса, который содержит строку - PullRequest
0 голосов
/ 06 сентября 2018

Я использую API для получения информации о JSON, вот пример того, как это выглядит:

multimedia: [
{
  url: "small.jpg"
  format: "small"
},
{
  url: "medium.jpg"
  format: "medium"
},
{ url: "large.jpg"
  format: "large"
}  
]

так что, как вы видите, в мультимедийном контейнере много URL-адресов изображений с разными размерами, и я хочу прочитать только один из них, например, только URL-адрес для medium.jpg.

Мой код примерно такой, который сначала читает контейнер мультимедиа:

let randomImg = result[random]["multimedia"] as! [[String: AnyObject]]

Затем я сделал другую переменную, которая читает нужный мне индекс:

let randomImgIndex = randomImg[1]

поэтому, когда я пытаюсь получить свою последнюю строку, я получаю сообщение об ошибке:

let finalImgUrl = randomImgIndex[random]["url"] as! String

Ошибка: невозможно добавить значение типа «[String: AnyObject]» с индексом типа «Int»

Я очень новичок в Свифте, поэтому я полностью потерян.

1 Ответ

0 голосов
/ 06 сентября 2018

randomImgIndex - это уже нужный словарь.

Изменение:

let finalImgUrl = randomImgIndex[random]["url"] as! String

до:

let finalImgUrl = randomImgIndex["url"] as! String

Кстати, вам нужно прекратить использовать все эти операторы ! и as!. Ваше приложение будет зависать, если данные не совсем такие, как ожидалось. Защищайте код, когда вы получаете данные вне вашего контроля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...