Json 没有与键编码键关联的值

Json 没有与键编码键关联的值,json,swift,parsing,codable,Json,Swift,Parsing,Codable,我正在尝试解析以下json: "categories": [ { "id": 42, "name": "Air Conditioning", "image_url": "system-data/category/Category-AirConditioning.png", "image_marker_url": "system-data/category/Marker_Category

我正在尝试解析以下json:

"categories": [
        {
            "id": 42,
            "name": "Air Conditioning",
            "image_url": "system-data/category/Category-AirConditioning.png",
            "image_marker_url": "system-data/category/Marker_Category-Air Conditioning.png",
            "status_id": 7,
            "created_at": 1580452213,
            "updated_at": 1580452213
        },
        {
            "id": 43,
            "name": "Car Wash",
            "image_url": "system-data/category/Category-Carwash.png",
            "image_marker_url": "system-data/category/Marker_Category-Car Wash.png",
            "status_id": 7,
            "created_at": 1580452213,
            "updated_at": 1580452213
        },
        {
            "id": 45,
            "name": "Automobile Services",
            "image_url": "system-data/category/Category-Automobile.png",
            "image_marker_url": "system-data/category/Marker_Category-Automobile Services.png",
            "status_id": 7,
            "created_at": 1580452213,
            "updated_at": 1580452213
        },
        {
            "id": 48,
            "name": "Electrical",
            "image_url": "system-data/category/Category-Electrical.png",
            "image_marker_url": "system-data/category/Marker_Category-Electrical.png",
            "status_id": 7,
            "created_at": 1580452213,
            "updated_at": 1580452213
        },
        {
            "id": 49,
            "name": "Generator Repair & Maintenance",
            "image_url": "system-data/category/Category-Generator.png",
            "image_marker_url": "system-data/category/Marker_Category-Generator Repair & Maintenance.png",
            "status_id": 7,
            "created_at": 1580452213,
            "updated_at": 1580452213
        }
    ]
下面是我将json响应映射到模型的结构:

struct CityCategory: Codable{

    let id: Int
    let name, imageUrl, imageMarkerUrl: String
    let statusID, createdAt, updatedAt: Int

    enum CodingKeys: String, CodingKey{
        case id = "id"
        case name = "name"
        case imageUrl = "image_url"
        case imageMarkerUrl = "image_marker_url"
        case createdAt = "created_at"
        case updatedAt = "updated_at"
        case statusID = "status_id"
    }

}

struct CityCategoryResponse: Codable{
    let cityCat: [CityCategory]
}
我正在尝试这个:

let response = try JSONDecoder().decode(CityCategoryResponse.self, from: jsonData)

它会抛出错误

keyNotFound(编码键(stringValue:“cityCat”,intValue:nil), Swift.DecodingError.Context(编码路径:[],调试说明:“否 与键编码键关联的值(stringValue:\“cityCat\”, intValue:nil)(“cityCat\”,underyingerror:nil))

你需要

let categories: [CityCategory]

cityCat
不是json中的密钥,因此解码器无法找到它

你需要

let categories: [CityCategory]

cityCat
不是json中的密钥,因此解码器无法找到它


您必须编写与json键匹配的属性,或者对自定义键名称使用
enum CodingKeys
您必须编写与json键匹配的属性,或者对自定义键名称使用
enum CodingKeys