下面的屬性位于_data_對象中,用來給一列數據分頁。一些語言和概念是從OpenSearch規范中借鑒過來的。
下面的分頁數據允許各種風格的分頁,包括:
* 上一頁/下一頁 - 允許用戶在列表中前進和后退,一次一頁。_nextLink_?和_previousLink_屬性 (下面的"鏈接保留屬性名"部分有描述) 用于這種風格的分頁。
* 基于索引的分頁 - 允許用戶直接跳到條目列表的某個條目位置。例如,要從第200個條目開始載入10個新的條目,開發者可以給用戶提供一個URL的查詢字符串_?startIndex=200_。
* 基于頁面的分頁 - 允許用戶直接跳到條目內的具體頁。這跟基于索引的分頁很類似,但節省了開發者額外的步驟,不需再為新一頁的條目計算條目索引。例如,開發人員可以直接跳到第20頁,而不是跳到第200條條目。基于頁面分頁的網址,可以使用查詢字符串_?page=1_或_?page=20_。_pageIndex_和?_totalPages_?屬性用作這種風格的分頁.
在這份指南的最后可以找到如何使用這些屬性來實現分頁的例子。
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datacurrentitemcount)data.currentItemCount
~~~
屬性值類型: 整數(integer)
父節點: data
~~~
結果集中的條目數目。應該與items.length相等,并作為一個便利屬性提供。例如,假設開發者請求一組搜索條目,并且要求每頁10條。查詢集共有14條。第一個條目頁將會有10個條目,因此_itemsPerPage_和_currentItemCount_都應該等于10。下一頁的條目還剩下4條;_itemsPerPage_仍然是10,但是_currentItemCount_是4.
示例:
~~~
{
"data": {
// "itemsPerPage" 不需要與 "currentItemCount" 匹配
"itemsPerPage": 10,
"currentItemCount": 4
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#dataitemsperpage)data.itemsPerPage
~~~
屬性值類型: 整數(integer)
父節點: data
~~~
items結果的數目。未必是data.items數組的大小;如果我們查看的是最后一頁,data.items的大小可能小于_itemsPerPage_。但是,data.items的大小不應超過_itemsPerPage_。
示例:
~~~
{
"data": {
"itemsPerPage": 10
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datastartindex)data.startIndex
~~~
屬性值類型: 整數(integer)
父節點: data
~~~
data.items中第一個條目的索引。為了一致,_startIndex_應從1開始。例如,第一組items中第一條的_startIndex_應該是1。如果用戶請求下一組數據,_startIndex_可能是10。
示例:
~~~
{
"data": {
"startIndex": 1
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datatotalitemsx)data.totalItemsx
~~~
屬性值類型: 整數(integer)
父節點: data
~~~
當前集合中可用的總條目數。例如,如果用戶有100篇博客文章,響應可能只包含10篇,但是_totalItems_應該是100。
示例:
~~~
{
"data": {
"totalItems": 100
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datapaginglinktemplate)data.pagingLinkTemplate
~~~
屬性值類型: 字符串(string)
父節點: data
~~~
URL模板指出用戶可以如何計算隨后的分頁鏈接。URL模板中也包含一些保留變量名:表示要載入的條目的_{index}_,和要載入的頁面的_{pageIndex}_。
示例:
~~~
{
"data": {
"pagingLinkTemplate": "http://www.google.com/search/hl=en&q=chicago+style+pizza&start={index}&sa=N"
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datapageindex)data.pageIndex
~~~
屬性值類型: 整數(integer)
父節點: data
~~~
條目的當前頁索引。為了一致,_pageIndex_應從1開始。例如,第一頁的_pageIndex_是1。_pageIndex_也可以通過基于條目的分頁而計算出來_pageIndex = floor(startIndex / itemsPerPage) + 1_。
示例:
~~~
{
"data": {
"pageIndex": 1
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datatotalpages)data.totalPages
~~~
屬性值類型: 整數(integer)
父節點: data
~~~
當前結果集中的總頁數。_totalPages_也可以通過上面基于條目的分頁屬性計算出來:?_totalPages = ceiling(totalItems / itemsPerPage)._。
示例:
~~~
{
"data": {
"totalPages": 50
}
}
~~~
- Google 開源項目風格指南 (中文版)
- C++ 風格指南
- 0. 扉頁
- 1. 頭文件
- 2. 作用域
- 3. 類
- 4. 來自 Google 的奇技
- 5. 其他 C++ 特性
- 6. 命名約定
- 7. 注釋
- 8. 格式
- 9. 規則特例
- 10. 結束語
- Objective-C 風格指南
- Google Objective-C Style Guide 中文版
- 留白和格式
- 命名
- 注釋
- Cocoa 和 Objective-C 特性
- Cocoa 模式
- Python 風格指南
- Google Python 風格指南 - 中文版
- 背景
- Python語言規范
- Python風格規范
- 臨別贈言
- JSON 風格指南
- 簡介
- 定義
- 一般準則
- 屬性名準則
- 屬性值準則
- 屬性值數據類型
- JSON結構和保留屬性名
- 頂級保留屬性名稱
- data對象的保留屬性名
- 用于分頁的保留屬性名
- 用于鏈接的保留屬性名
- 錯誤對象中的保留屬性名
- 屬性順序
- 示例
- 附錄