下面的属性位于_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对象的保留属性名
- 用于分页的保留属性名
- 用于链接的保留属性名
- 错误对象中的保留属性名
- 属性顺序
- 示例
- 附录