Быстрый анализ json из API — данные не могут быть прочитаны, потому что они не в правильном формате

#ios #json #swift #api #uikit

#iOS #json #swift #API #uikit

Вопрос:

Я получаю эту ошибку при извлечении данных json из API. Я провел некоторое исследование на сайте, но все равно не смог решить проблему. Как я могу решить эту проблему?

 JSON Data

date    :   2020.09.29
time    :   17:48:25
violence  : 3.2
region: AKDENIZ
  
 struct EarthQuake: Codable {

    var date: String
    var time: String
    var violence: Double
    var region: String
}
  
  func fetchPostData(completionHandler: @escaping ([EarthQuake]) -> Void) {

        let url = URL(string: "https://test.xyz.php")!

        let task = URLSession.shared.dataTask(with: url) { (data, response, error) in

            guard let data = data else { return }
            do {
                let postsData = try JSONDecoder().decode([EarthQuake].self, from: data)

                completionHandler(postsData)

            } catch {
                let error = error
                print(error.localizedDescription)
            }
        }.resume()

    }
  

Ответ №1:

Возможно, стоит дважды проверить объект ответа из вызываемого вами api и убедиться, что он соответствует типу [EarthQuake].self . (Который должен быть списком объектов землетрясения). Если данные JSON, которые вы добавили в исходное сообщение, являются правильными данными, возвращенными из конечной точки, то это не список, и если это объект землетрясения, вам просто нужно будет убрать скобки. так

[Землетрясение].self. должно быть EarthQuake.self

Комментарии:

1. Я исправил проблему с json4swift.com . Спасибо за ответ 🙂