gpt4 book ai didi

api - 为分页 API 制作 Scala 迭代器

转载 作者:行者123 更新时间:2023-12-04 20:09:36 26 4
gpt4 key购买 nike

我正在编写一个 Scala 库,以便更轻松地查询分页的 JSON API。每个 API 调用都会返回一个如下所示的对象:

{
"count": 100,
"current_page": 1,
"total_pages": 2,
"records": [
...
]
}

我想要一个返回某种迭代器的函数,比如 MyIterator[Record]。在 Scala 世界中是否有任何标准方法可以做到这一点,甚至标准库中的构造可以帮助我?

如果有帮助的话,我通常使用lift-json 来解析我的JSON。

谢谢。

最佳答案

如果您有 Iterator[Iterator[A]]您可以使用 flatten生产 Iterator[A]它将所有嵌套的迭代器链接在一起:

scala> Iterator(Iterator(1, 2), Iterator(3, 4)).flatten.toList
res0: List[Int] = List(1, 2, 3, 4)

结合 Iterator companion object 上的工厂方法之一,你可以把它变成一个单行:
Iterator.range(1, pageCount).map(i: Int => fetchPage(i)).flatten

如果您只能通过检索页面来获取页面计数,则可能需要更复杂一些……例如:
val (firstPage, pageCount) = getFirstPageWithCount()
firstPage ++ (Iterator.range(2, pageCount).map(fetchPage).flatten)

关于api - 为分页 API 制作 Scala 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com