Возникли проблемы с декодированием полученного объекта JSON в Swift - PullRequest
0 голосов
/ 05 июня 2019

Я могу получить некоторый JSON из конечной точки, но затем, когда я пытаюсь декодировать этот JSON в мой объект модели, что-то идет не так, где json не может быть проанализирован.Я убедился, что свойства моего объекта модели соответствуют ключам json, поэтому я не понимаю, в чем проблема.Каждый раз он печатает блок catch.

Вот мой код для получения json:

func getServiceProviders() {
    let session = URLSession.shared

    let url = URL(string: "http://exampleendpoint.com/example")!

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



 //Here is where I try to decode the json into my model object

            do {
            let jsonContent = try JSONDecoder().decode(ServiceObject.self, from: data!)
            print(jsonContent)
        } catch {
            print("Ooops")
        }


}.resume()

Вот мой объект модели:

     struct ServiceObject: Decodable {
let serviceproviders: [ServiceProvider]



struct ServiceProvider: Decodable {
let city: String
let coordinates: Location
let name: String
let overallGrade: String
let postalCode: Int
let state: String
let reviewCount: Int
 }

 struct Location: Decodable {
let latitude: Double
let longitude: Double
 }

 }

Воткак выглядит объект json, который я получаю:

      {
"serviceproviders": [
    {
    "city" : "Beech Grove",
    "coordinates" :                 {
        "latitude" : "39.715417",
        "longitude" : "-86.095646"
    },
    "name" : "William J Ciriello Plumbing Co Inc",
    "overallGrade" : "A",
    "postalCode" : "46107",
    "state" : "Indiana",
    "reviewCount" : 309
},
            {
    "city" : "Indianapolis",
    "coordinates" :                 {
        "latitude" : "39.922607",
        "longitude" : "-86.0267094"
    },
    "name" : "Roby's Plumbing & Appliance Service",
    "overallGrade" : "B",
    "postalCode" : "46256",
    "state" : "Indiana",
    "reviewCount" : 903
},
...