HTTP 响应解析:顺序与设置约定



我正在使用Akka-HTTP和Json4s调用API,但这个问题可能适用于任何HTTP客户端/JSON解析器。API 返回一个简短的项目集合,在解析响应时我应该使用 Seq 还是 Set?由于收藏品规模小,性能并不是一个真正的问题。从逻辑/可读性的角度来看,Set 对我来说更有意义,因为集合是无序的,应该没有重复项。但是,我通常看到人们使用集合。

举个例子,我要反序列化的对象是:

case class(name: String, tags: Seq[String], filters: Seq[Filter])  

这个问题不仅适用于任何HTTP客户端/JSON解析器,也适用于选择使用某些数据结构的任何情况。这里的关键是对数据的访问模式,以及将来要对数据执行的操作类型。在大多数情况下,您可能会遍历所有集合,执行一些转换,或者如果我们谈论的是与 UI 相关的应用程序 - 以列表视图的形式呈现您的数据。在这些情况下,您不需要快速访问特定元素(Set 的主要优点(。由于 Seq 通常消耗更少的内存并允许对所有元素进行更快的迭代 - 人们更喜欢使用 Seq。

最新更新