如何在Swift中解码具有数组根的JSON

如何在Swift中解码具有数组根的JSON,json,swift,parsing,jsondecoder,Json,Swift,Parsing,Jsondecoder,我正在尝试解析从api请求中获得的一些数据。问题是,没有一个值具有标签。我想为每个值添加标签,以便稍后在程序中引用标签 struct dataSet : Codable { var variable1 : Int var variable2 : Double var variable3 : Double var variable4 : Double var variable5 : Double var variable6 : Double

我正在尝试解析从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”:[],“results”:{“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”,“12.1”,“654.1”,“12.1”,“723.1”,“23.34521”,1]

],“last”:64274}


您有一个
变量数组
,而不仅仅是一个
变量
实例。因此,您的解码类型应该是
[Variables]。self
,而不是
变量。self


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

变量
应为
大写
。每个结构都只是一个变量的集合,因此它是一个完全无用的名称。我尝试了您的解决方案,但出现了以下错误:JSON错误:无法读取数据,因为它的格式不正确。我还更新了示例数据以显示api的页眉和页脚data@Liv嗯,你不能忽略这些lol。所以你需要创建另一个包含
错误:[SomeType]
结果:DataSet
last:Int
的结构,我更新了代码,但我仍然无法让它处理这些更改。以以下格式接收数据:{error[],result{firsBatch[dataSet],last}