Swift使用JSONDecoder解析API数据报错:期望字典却找到数组
问题原因说明
- 你自定义的
Response结构体本身就对应JSON的字典类型:当你指定解码目标为Response.self时,JSONDecoder会默认期望接收的JSON顶层结构是字典(用来匹配Response的两个属性foundRecipes、foundIngredients对应的键值对),这就是错误提示中“期望解码Dictionary<String, Any>”的来源,你只是没有意识到自定义结构体对应的JSON结构类型。 - 你调用的接口返回的顶层JSON结构是数组,并不存在你额外定义的
foundRecipes、foundIngredients外层包装字段,自定义的结构和实际返回的结构完全不匹配,因此触发类型不匹配错误。 - 你定义的
Ingredient结构体中存在字段拼写错误,origianalName的拼写不符合实际JSON返回的字段名,后续结构对齐后也会导致解码失败,需要留意。
内容的提问来源于stack exchange,提问作者cassilly
相关产品推荐
相关产品推荐

