Swift: получить массив из данных в кодировке JSON - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть данные в формате JSON, которые я загружаю с помощью GCD.Вы можете увидеть, как кодируется JSON по этой ссылке: https://quiz2019.herokuapp.com/api/quizzes?token=8fda199c75cb200b0f85

Я хочу получить доступ ко всем отдельным данным из этого JSON, но не могу этого достичь.Я попытался сделать это:

let arrayData = try? JSONSerialization.jsonObject(with: data, options: [])

, но после этого я не знаю, как получить доступ ко всем данным в массиве.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Вы также можете использовать вышеупомянутое нативное решение с помощью Sh_khan (поскольку нативные решения всегда бывают лучшими и быстрыми), или альтернативным решением является использование Object Mapper .

Это одна из лучших библиотек json и очень простая.Просто напишите одну строку: -

let user = Mapper<User>().map(JSONString: JSONString)

Вы можете использовать Json Export для преобразования вашего json в модель.

Надеюсь, это поможет:)

0 голосов
/ 20 ноября 2018

Можно попробовать

struct Root: Codable {
    let quizzes: [Quiz]
    let pageno: Int
    let nextURL: String

    enum CodingKeys: String, CodingKey {
        case quizzes, pageno
        case nextURL = "nextUrl"
    }
}

struct Quiz: Codable {
    let id: Int
    let question: String
    let author: Author?
    let attachment: Attachment
    let favourite: Bool
    let tips: [String]
}

struct Attachment: Codable {
    let filename: String
    let mime: MIME
    let url: String
}

enum MIME: String, Codable {
    case imageJPEG = "image/jpeg"
}

struct Author: Codable {
    let id: Int
    let isAdmin: Bool?
    let username: String
}

let roo = try? JSONDecoder().decode(Root.self,from:jsonData)
print(roo)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...