难以理解 API 结构
Posted
技术标签:
【中文标题】难以理解 API 结构【英文标题】:Difficulty understanding API structure 【发布时间】:2021-10-10 08:00:12 【问题描述】:我正在从事一个从 API 提取数据的项目。我了解之前调用的 API 结构,但这个有点不同,给我带来了麻烦。
以下是 API 调用结果的示例: [1]:https://i.stack.imgur.com/V0wVh.png
我看到它返回一个步骤数组,每个步骤都有额外的数据。所以这就是我构建结构的方式:
struct Instructions: Codable
let steps: [Step]
struct Step: Codable
let number: Int // step number
let step: String // step explanation
let ingredients: [Ingredient] // ingredients used in this step
let image: String
如果这些结构正确,那么我想我的问题是如何访问struct Step
的数据?
我本来打算这样处理的:
我初始化这个:var result: [Instructions] = []
,然后在 UITableVieDataSource 的 cellForRowAt 函数中,我做:let stepContents = result[indexPath.row].steps
。这显然不起作用,但我正在尝试将 stepContents 设置为等于 Step 中的 step: String
。
任何提示/想法将不胜感激 - 我很难过。谢谢!
编辑:澄清最后一段。
【问题讨论】:
let stepContents = result.steps.[indexPath.row]
代替?如果result
是Instructions
,目前还不清楚它是什么......
@Larme 抱歉——结果被初始化为... var result: [Instructions] = []
能否贴出实际的json,不是图片,不清楚step是什么
【参考方案1】:
您的 Step 结构在等待后不正确
让图片:字符串
但是在您通过屏幕截图提供的服务器响应中,您没有此字段。 由于您将其添加为非可选,因此解码器无法对其进行解码。
尝试为图像设置可选类型,例如:
var 图像:字符串?
如果不需要则删除
【讨论】:
以上是关于难以理解 API 结构的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Google 的 TrueTime API 难以复制?