JSONDecoder
не предоставляет JSONSerialization.ReadingOptions
.
Вы можете вручную проверить, является ли первый байт данных открывающей квадратной скобкой <5b>
или фигурной скобкой <7b>
guard let data = data, let firstByte = data.first else { return }
guard firstByte == 0x5b || firstByte == 0x7b else {
let string = String(data: data, encoding: .utf8)!
print(string)
return
}
Однако я 'Рекомендуется использовать параметр response
для проверки кода состояния 200
URLSession.shared.dataTask(with: url) { (data, response , error) in
if let response = response as? HTTPURLResponse, response.statusCode != 200 {
print(response.statusCode)
return
}
...
Примечание. Если CodingKeys точно соответствуют элементам структуры, вы можете опустить CodingKeys, и, поскольку вы явно используете .convertFromSnakeCase
, вы используетеРекомендуется называть членов структуры recipeId
, imageUrl
, sourceUrl
и т. д.