Как декодировать JSON с корнем массива в Swift - PullRequest
0 голосов
/ 18 октября 2019

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

struct dataSet : Codable {
    var variable1 : Int
    var variable2 : Double
    var variable3 : Double
    var variable4 : Double
    var variable5 : Double
    var variable6 : Double
    var variable7 : Double
    var variable8 : Int
}

struct firsBatch : Codable {
    var dataSet : [dataSet]
}

struct results : Codable {
    var firsBatch : firsBatch
    var last : Int
}

struct allData : Codable {
    var errors : [String]
    var results : results
}


//some api request code {...}


    do {
        let decoder = JSONDecoder()
        let parsedJSON = try decoder.decode(allData.self, from: data!)
        print(parsedJSON)
    } catch {
        print("JSON error: \(error.localizedDescription)")
    }

// Образец данных

{"error": [], "результаты ": {" firsBatch ": [

[21," 93423.5 "," 324.5 "," 21.0 "," 63.0 "," 1253.0 "," 12.34 ", 1], [42," 314.0" "431,1", "2341,0", "67,1", "6567,0", "0,8754", 4], [12, "4312,1", "12,1", "43,1", "3432,1", "0,0"," 123,432", 0], [422," 23442.1 "," 12.1 "," 654.1 "," 12.1 "," 723.1 "," 23.34521 ", 1]

]," last ": 64274}}

1 Ответ

0 голосов
/ 18 октября 2019

У вас есть массив Variables, а не только один Variables экземпляр. Таким образом, ваш тип декодирования должен быть [Variables].self, а не Variables.self:

let parsedJSON = try decoder.decode(variables.self, from: data!)

...