如何在Swift中解码具有数组根的JSON
我正在尝试解析从api请求中获得的一些数据。问题是,没有一个值具有标签。我想为每个值添加标签,以便稍后在程序中引用标签如何在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
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}