В настоящее время я работаю над обработкой информации, полученной из файла JSON, и, поскольку она организована в несколько уровней, мне нужно иметь возможность преобразовывать не только файл, но и все его содержимое в правильный файл. типы. У меня есть некоторые проблемы с этим, и я не могу найти что-то для Swift по этому вопросу.
До сих пор я пробовал методы, которые очевидны в коде ниже. Я не мог найти много информации об альтернативных методах, чтобы сделать это, и я все еще новичок в программировании, поэтому я не смог сделать много.
URLSession.shared.dataTask(with: urlRequest) { data, response, error in
if let data = data {
print("Clear")
let returnData = String(data: data, encoding: .utf8)
do {
let image = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
print(image!["results"])
var imgl2 = image!["results"]
imgl2 = imgl2 as! Array
//imgl2 = imgl2![0]
//print(imgl2!["color"])
// var imgl3 = imgl2!["results"]
// var imgl4 = imgl3!["results"]
// var imgl5 = imgl4!["results"]
// var imgl6 = imgl5!["results"]
} catch let error {
print(error)
}
}
}.resume()
Что должно произойти, это то, что я должен быть в состоянии преобразовать содержимое JSON в правильный тип файлов. В какой-то степени это работает, и я могу получить результаты первого уровня. Тем не менее, частично через процесс в imgl2 = imgl2, как! Массив, я не могу преобразовать его в массив. Вместо этого я получаю сообщение об ошибке (Невозможно присвоить значение типа «Массив <_>» типу «Любой?»). Я бы очень хотел иметь возможность использовать вложенный массив, но не могу. После этого будет несколько дополнительных уровней контента, которые мне нужно будет отсортировать таким образом. Я пытался просмотреть документацию по API, но я не понимаю, как они это написали (кстати, это Unsplash), и поэтому я пробовал этот метод. Как именно я поступил бы по этому поводу?
(Для получения дополнительной информации я пытаюсь извлечь первое изображение в результатах, чтобы затем я мог редактировать его программным способом. Мне нужен URL-адрес, заключенный в ответ на поисковый запрос, но способ, которым документация сформулированный текст достаточно неясен, и решения этой проблемы настолько скудны, что мне пришлось использовать метод проб и ошибок, чтобы добраться до того места, где я нахожусь. Любое понимание того, как этого добиться, будет с благодарностью.)