首页 > 解决方案 > 快速不规则 json 解析

问题描述

有人可以告诉我如何像这样解析 Json 吗?感谢任何帮助!我怎么能为此构建一个 Codable 结构?

{
"meta": {
    "page": 1,
    "total_pages": 4,
    "per_page": 10,
    "total_records": 38
},
"breweries": [
    {
        "id": 1234,
        "name": "Saint Arnold"
    },
    {
        "id": 52892,
        "name": "Buffalo Bayou",
        "valueQuantity":
        {
             "value":4.33,
             "unit":"mg/dL"
        }
    }
]
}

标签: jsonswiftparsing

解决方案


let model = try? newJSONDecoder().decode(MyModel.self, from: jsonData)


import Foundation

// MARK: - MyModel
struct MyModel: Codable {
    let meta: Meta
    let breweries: [Brewery]
}

// MARK: - Brewery
struct Brewery: Codable {
    let id: Int
    let name: String
    let valueQuantity: ValueQuantity?
}

// MARK: - ValueQuantity
struct ValueQuantity: Codable {
    let value: Double
    let unit: String
}

// MARK: - Meta
struct Meta: Codable {
    let page, totalPages, perPage, totalRecords: Int

    enum CodingKeys: String, CodingKey {
        case page
        case totalPages = "total_pages"
        case perPage = "per_page"
        case totalRecords = "total_records"
    }
}

像这样的东西应该工作。


推荐阅读