我如何制作一个结构来解码 Swift 中的 JSON 结构?
How can I make a struct to decode JSON structure in Swift?
如何创建一个结构或 class 来解码 swift 中以下类型的 json 结构?我想主要提取报告节点数据!
{
"earliest": "2020-10-17",
"latest": "2020-10-28",
"report": {
"purchase": {
"total": 1458600.0,
"average": 121550.0,
"min": 600000.0,
"max": 1600.0
},
"sale": {
"total": 434250.0,
"average": 144750.0,
"min": 360000.0,
"max": 29250.0
},
"production": {
"total": 792030,
"average": 20308.46153846154,
"min": 12000,
"max": 29700
}
}
}
您只需要构造您的数据并使其符合 Codable:
struct Root: Codable {
let earliest: String
let latest: String
let report: Report
}
struct Report: Codable {
let purchase: Results
let sale: Results
let production: Results
}
struct Results: Codable {
let total: Int
let average: Double
let min: Int
let max: Int
}
let json = """
{
"earliest": "2020-10-17",
"latest": "2020-10-28",
"report": {
"purchase": {
"total": 1458600.0,
"average": 121550.0,
"min": 600000.0,
"max": 1600.0
},
"sale": {
"total": 434250.0,
"average": 144750.0,
"min": 360000.0,
"max": 29250.0
},
"production": {
"total": 792030,
"average": 20308.46153846154,
"min": 12000,
"max": 29700
}
}
}
"""
do {
let report = try JSONDecoder().decode(Root.self, from: .init(json.utf8)).report
print("report", report)
} catch {
print(error)
}
report Report(purchase: Results(total: 1458600, average: 121550.0, min: 600000, max: 1600), sale: Results(total: 434250, average: 144750.0, min: 360000, max: 29250), production: Results(total: 792030, average: 20308.46153846154, min: 12000, max: 29700))
如何创建一个结构或 class 来解码 swift 中以下类型的 json 结构?我想主要提取报告节点数据!
{
"earliest": "2020-10-17",
"latest": "2020-10-28",
"report": {
"purchase": {
"total": 1458600.0,
"average": 121550.0,
"min": 600000.0,
"max": 1600.0
},
"sale": {
"total": 434250.0,
"average": 144750.0,
"min": 360000.0,
"max": 29250.0
},
"production": {
"total": 792030,
"average": 20308.46153846154,
"min": 12000,
"max": 29700
}
}
}
您只需要构造您的数据并使其符合 Codable:
struct Root: Codable {
let earliest: String
let latest: String
let report: Report
}
struct Report: Codable {
let purchase: Results
let sale: Results
let production: Results
}
struct Results: Codable {
let total: Int
let average: Double
let min: Int
let max: Int
}
let json = """
{
"earliest": "2020-10-17",
"latest": "2020-10-28",
"report": {
"purchase": {
"total": 1458600.0,
"average": 121550.0,
"min": 600000.0,
"max": 1600.0
},
"sale": {
"total": 434250.0,
"average": 144750.0,
"min": 360000.0,
"max": 29250.0
},
"production": {
"total": 792030,
"average": 20308.46153846154,
"min": 12000,
"max": 29700
}
}
}
"""
do {
let report = try JSONDecoder().decode(Root.self, from: .init(json.utf8)).report
print("report", report)
} catch {
print(error)
}
report Report(purchase: Results(total: 1458600, average: 121550.0, min: 600000, max: 1600), sale: Results(total: 434250, average: 144750.0, min: 360000, max: 29250), production: Results(total: 792030, average: 20308.46153846154, min: 12000, max: 29700))