ObjectMapper 和具有唯一键的数组

ObjectMapper and arrays with unique keys

我 运行 遇到了 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)
}