Swift:在结构中使用整数作为字段

Swift:在结构中使用整数作为字段,swift,struct,Swift,Struct,我正在Swift中调用一个API,我正在使用JSONDecoder。API调用返回类别和id,我遇到的问题是,它将子类别存储在主类别id的键下 返回的数据如下所示: categories = { data = { main = ( { id = 39; name = Electronics; } ) sub = { 39 = ( { id =

我正在Swift中调用一个API,我正在使用JSONDecoder。API调用返回类别和id,我遇到的问题是,它将子类别存储在主类别id的键下

返回的数据如下所示:

categories = {
  data = {
    main = (
      {
        id = 39;
        name = Electronics;
      }
    )
    sub = {
      39 =
        (
          {
            id = 49;
            name = TV;
          }
        )
    }
  }
}
问题是
39
。在我的结构中,我不能有
let 39:[类别]
,否则我会得到错误:

期待彭定康


有解决方法吗?

您不能使用39作为参数名,但可以使用此名称

let category_39:[类别]
私有枚举编码键:字符串,编码键{
案例类别_39=“39”
}
但我认为这种结构将是困难的,若从服务器端添加一个新的类别,那个么并没有预定义的类别id 我建议使用以下模型

struct模型:可编码{
let main:[类别]
let sub:[字符串:[类别]]
}
结构类别:可编码{
让id:Int
let name:String
}
然后按类别id获取子类别

let subCategories=model.sub[String(id)]//String(id)-->“39”

那不是JSON…当我打印(JSONSerialization.jsonObject(with:data,options:[]))时就会发生这种情况。你确定吗?因为那不是有效的JSON。。。