Получение Нил пытается расшифровать JSON - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь декодировать Json с этого URL (:

https://api.letsbuildthatapp.com/appstore/featured

из "Давайте создадим учебные пособия для приложений"). Это код, который я написал:

import UIKit

class AppCategory: NSObject{
    var name: String?
    var apps: [App]?

    static func fetchedFeaturedApps(){
        let jsonUrlString = "https://api.letsbuildthatapp.com/appstore/featured"
        guard let url = URL(string: jsonUrlString) else {return}
        URLSession.shared.dataTask(with: url) { (data, response, err) in
            guard let data = data else {return}
            do{
                let featured = try JSONDecoder().decode(Featured.self, from: data)
            }catch{
                print(err)
            }
            }.resume()
    }
}

struct Featured: Decodable {
    var bannerCategory: Banner?
    var featuredCategories: [mCategory]?
}
struct Banner: Decodable {
    var name: String?
    var apps: [String]?
    var type: String?
}

struct mCategory: Decodable {
    var name: String?
    var apps: [App]?
    var type: String?
}

struct App: Decodable {
    var id: Int?
    var name: String?
    var category: String?
    var price: Float?
    var imageName: String?
}

Iпытался следовать учебнику, но у меня это не сработало. Я всегда получаю ноль при попытке декодировать JSON из URL. Я действительно новичок в этом и не могу понять, что я делаю неправильно. Я знаючтобы правильно декодировать json, мне нужно, чтобы Structs был таким же, как json (как массив приложений в категории), но он все равно не будет работать.код переходит в блок catch и печатает "nil".

Я попытался напечатать 'err', но это все, что я получаю в журнале:

2019-02-09 19:07:45.241000+0200 AppStore[2344:120273] [AXMediaCommon] Unable to look up screen scale
2019-02-09 19:07:45.241153+0200 AppStore[2344:120273] [AXMediaCommon] Unexpected physical screen orientation
2019-02-09 19:07:45.314112+0200 AppStore[2344:120273] [AXMediaCommon] Unable to look up screen scale
2019-02-09 19:07:45.319977+0200 AppStore[2344:120273] [AXMediaCommon] Unable to look up screen scale
2019-02-09 19:07:45.320189+0200 AppStore[2344:120273] [AXMediaCommon] Unexpected physical screen orientation
nil

1 Ответ

0 голосов
/ 09 февраля 2019

У вас есть

typeMismatch (Swift.String, Swift.DecodingError.Context (codingPath: [CodingKeys (stringValue: "bannerCategory", intValue: nil)], debugDescription: "Ожидается декодировать строкуно вместо этого нашел словарь. "

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