swift - ObjectMapper 和具有唯一键的数组
问题描述
我遇到了 ObjectMapper 的问题以及 json 响应从服务器返回的方式。有没有办法让 ObjectMapper 解析这个响应并创建一个房间数组?
目前我不能直接映射 json,因为键是唯一的,并且会更改每个请求,我也不能使用 ObjectMapper 方法访问带有点符号的嵌套对象,rooms.0.key
因为我不确定有多少对象以及键那会出现的。
有没有一种简单的方法来解析这个响应。
"rooms": {
"165476": {
"id": "165476",
"area": {
"square_feet": 334,
"square_meters": 31
},
"165477": {
"id": "165477",
"area": {
"square_feet": 334,
"square_meters": 31
},
解决方案
用于Codable
解析上述JSON响应。
楷模:
struct Rooms: Codable {
let rooms: [String:Room]
}
struct Room: Codable {
let id: String
let area: Area
}
struct Area: Codable {
let squareFeet: Int
let squareMeters: Int
}
像这样解析JSON ,data
do {
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let response = try decoder.decode(Rooms.self, from: data)
print(response.rooms.first?.key) //for the above json it will print "165476"
} catch {
print(error)
}
推荐阅读
- reactjs - 添加图像以响应 js
- python - cat boost 特征在训练数据中具有“分类”类型,但在测试数据集中具有“浮点”类型
- ios - 如何在 Swift 中获取所有附近 ssid 的列表
- sql - 未从链接服务器(Oracle 数据库)获取 SQL 值
- ios - 如何使用 AVPlayer 从数组中选择后播放下一首曲目
- python - 从 timstamp 和字符串类型列创建日期时间列
- python-3.x - 转换 docx。在linux中的python中转换为pdf
- python - 我将如何修改它以添加一列?
- scrapy-splash - Splash 因“客户端超时:IPv4Address”而冻结
- php - 我想重新排列 WordPress 主题的 div。如何找出要编辑的 PHP 页面?