[英]SWIFT 4 nested JSON Struct - Codable
我在使用Swift 4創建結構以解析JSON時遇到了問題。我能夠解析小型JSON,而JSONDecoder似乎運行良好。 只需要幫助來創建一個結構來解析JSON,如下所示:
{
"main": {
"solutions": [
{
"exersises": [
{
"book_title": "test",
"release_date": "2015-01-12T11:00",
"price": 100,
"additional": [
{
"item1": "test",
"item2": "test",
"number": 1
},
{
"item1": "test2",
"item2": "test2",
"number": 2
}
],
"availability": "Yes",
"item_id": 43534
}
]
}
]
}
}
例如,我需要什么樣的結構才能獲得book_title的值?
真的很簡單。 您的主要探查很可能是根元素。 讓我為您准備第一層或第二層。
let decoded = try JSONDecoder().decode(MainJSON.self, from: data)
class MainJSON: Codable {
var main:SolutionJSON?
}
class SolutionJSON: Codable {
var exercises:[ExercisesJSON]?
}
class ExercisesJSON: Codable {
var bookTitle: String?
var releaseDate: String?
var price: Double?
... etc
enum CodingKeys: String, CodingKey {
case bookTitle = "book_title"
case releaseDate = "release_date"
case price = "price"
}
}
ExerciseJSON還使用Codable接口,如果不匹配,該接口可將json屬性重新映射為swift屬性。 希望這可以幫助。
我更願意給出一個通用的解決方案,不僅針對這種情況
非常簡單,只需從GITHUB下載並運行此MACOS APP ,即可通過XCODE在Mac中運行它,但其中包含JSON,
它將為任何復雜的JSON制作模型
筆記
1如果JSON密鑰的首字母大寫,則該字符將很小,因此在復制模型后,您需要像JSON一樣對其進行更改
2如果兩個JSON對象具有相同的結構和相同的鍵名,則它將只是一個模型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.