json - 快速不规则 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"
}
}
]
}
解决方案
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"
}
}
像这样的东西应该工作。
推荐阅读
- python - 逐个单元格地比较两个数据帧的完整矩阵
- javascript - React Router 警告 Render 方法应该是 props 和 state 的纯函数
- javascript - 解构并返回多个值
- python - 如何解决 AttributeError: 'list' object has no attribute 'lower in scipy minimize
- c++ - Clang 不知道 PTRDIFF_MAX?
- r - 用 purrr 函数替换 for 循环(修改对象)?
- r - 同名矩阵R
- java - 无法使用 SharePoint 文件下载 REST API 和 Java 下载 docx 文件
- javascript - 避免输入溢出他们的容器并在调整大小时让他们跳到下一行
- maps - 带有 Mapbox 层空白的叶