我从JSON服务得到以下响应:
[
{
"id": 1,
"name": "Student"
},
{
"id": 2,
"name": "Faculty"
}
]
我想把它Map到一个枚举:
enum Role: Int, Codable, Identifiable {
case student
case faculty
var id: Int {
rawValue
}
}
但是我在Map时遇到了麻烦,因为JSON中的数组包含字典。
2条答案
按热度按时间yzxexxkh1#
您的对象有2个成员:id是一个Int,name是一个字符串,你想使用它的枚举:
解码示例:
编辑:更正了枚举的名称+编码键的类型
htrmnn0y2#
你需要的是一个定制的编码器和解码器。代码中的另一个问题是,您没有指定枚举案例的整数值,该值应以1开头(如果您不指定,则将以零开头)。所以你的枚举应该看起来像这样:
然后你可以创建一个自定义解码器:
如果你需要编码,以及自定义编码器:
Playground测试: