【问题标题】:What is the use of Data Model while API Parsing in swiftswift中API解析时数据模型的用途是什么
【发布时间】:2019-02-12 19:08:15
【问题描述】:

为什么我们应该在解析 API 时使用数据模型。而我们可以简单地在它自己的 ViewController 类中获得响应。

谁能告诉我为什么我们应该使用数据模型来解析 api 响应..

提前致谢

【问题讨论】:

  • 易于使用和更复杂的代码分开。
  • 维护数组是对json数据进行操作非常冲突的过程,数据模型降低了处理本地数据的难度。一个重要的好处是,如果您要使用像 sqlite 这样的本地数据库,那么数据模型对于将数据解析到数据库非常有用……一旦您使用了数据模型,您肯定会明白我的意思。
  • Ok 这很容易使用。但是我们声明了太多变量来处理单个 API 响应。? @SagarBhut
  • 如果我不必为该特定 API 使用任何本地数据库怎么办? @teja_D
  • 玩数组而不是数据模型不是更好的选择,这是我的观点……如果你想使用数组,请使用.. ty @Maruf

标签: ios swift api model alamofire


【解决方案1】:

假设您在调用 API 后收到来自服务器的以下 json 响应:

{
"settings": {
    "isUserActive": false,
    "isUserAdmin": false,
    "rollNumber": 10,
    "userId": 2,
    "userName": "John"
},
"status": 200,
"message": "Success"
}

现在,如果您不使用数据模型,您将如何访问该值。会是这样的

let name = response["settings"]["userName"] 

(假设你已经将json转换成字典)

1) 如果你必须在多个地方使用用户名,那么你必须再次做同样的事情。

2) 上面的 json 响应很简单,因此很容易获得特定的值,但是想象一个存在嵌套对象的 json,尝试手动检索值可能会很痛苦。

3) 如果您在一个团队中工作,则某些开发人员可能会拼错密钥,并且可能需要数小时才能进行调试。

使用数据模型,如果属性拼写错误,编译器将抛出错误以避免错误。

4) 每次从字典中检索数据时都必须进行类型转换。

使用数据模型时,只需要进行一次类型转换,即。解析json时。

只需使用数据模型就可以避免所有这些痛苦,您只需解析一次json,您可以简单地使用键作为属性来访问值。

例如查看设置 json,一旦将其解析为数据模型,就可以像这样使用它:

let data = dataModel(json: jsonResponse)
data.settings.userName // John
data.settings.rollNumber //10
data.status //200

这是将 json 转换为数据模型的好工具Link

希望对你有帮助。

【讨论】:

  • 假设我的 Json 响应当然是嵌套的,但我只需要一次使用 json 响应。所以在那种情况下,这仍然是使用数据模型的好方法吗?或者我可以简单地硬编码到我的特定类。??
  • 就像我说的那样,它的易用性、简洁的代码和避免错误。这完全取决于你想如何使用它。 response.keyname1.keyname2.keyname3 远好于 response["keyname1"]["keyname2"]["keyname3"]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 2021-05-10
  • 2012-04-18
相关资源
最近更新 更多