**顶级的JSON对象可能包含下面这些属性**
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#apiversion)apiVersion
~~~
属性值类型: 字符串(string)
父节点: -
~~~
呈现请求中服务API期望的版本,以及在响应中保存的服务API版本。应随时提供_apiVersion_。这与数据的版本无关。将数据版本化应该通过其他的机制来处理,如etag。
示例:
~~~
{ "apiVersion": "2.1" }
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#context)context
~~~
属性值类型: 字符串(string)
父节点: -
~~~
客户端设置这个值,服务器通过数据作出回应。这在JSON-P和批处理中很有用,用户可以使用_context_将响应与请求关联起来。该属性是顶级属性,因为不管响应是成功还是有错误,_context_总应当被呈现出来。_context_不同于_id_在于_context_由用户提供而_id_由服务分配。
示例:
请求 #1:
~~~
http://www.google.com/myapi?context=bart
~~~
请求 #2:
~~~
http://www.google.com/myapi?context=lisa
~~~
响应 #1:
~~~
{
"context": "bart",
"data": {
"items": []
}
}
~~~
响应 #2:
~~~
{
"context": "lisa",
"data": {
"items": []
}
}
~~~
公共的JavaScript处理器通过编码同时处理以下两个响应:
~~~
function handleResponse(response) {
if (response.result.context == "bart") {
// 更新页面中的 "Bart" 部分。
} else if (response.result.context == "lisa") {
// 更新页面中的 "Lisa" 部分。
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#id)id
~~~
属性值类型: 字符串(string)
父节点: -
~~~
服务提供用于识别响应的标识(无论请求是成功还是有错误)。这对于将服务日志和单独收到的响应对应起来很有用。
示例:
~~~
{ "id": "1" }
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#method)method
~~~
属性值类型: 字符串(string)
父节点: -
~~~
表示对数据即将执行,或已被执行的操作。在JSON请求的情况下,_method_属性可以用来指明对数据进行何种操作。在JSON响应的情况下,_method_属性表明对数据进行了何种操作。
一个JSON-RPC请求的例子,其中_method_属性表示要在_params_上执行的操作:
~~~
{
"method": "people.get",
"params": {
"userId": "@me",
"groupId": "@self"
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#params)params
~~~
属性值类型: 对象(object)
父节点: -
~~~
这个对象作为输入参数的映射发送给RPC请求。它可以和_method_属性一起用来执行RPC功能。若RPC方法不需要参数,则可以省略该属性。
示例:
~~~
{
"method": "people.get",
"params": {
"userId": "@me",
"groupId": "@self"
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#data)data
~~~
属性值类型: 对象(object)
父节点: -
~~~
包含响应的所有数据。该属性本身拥有许多保留属性名,下面会有相应的说明。服务可以自由地将自己的数据添加到这个对象。一个JSON响应要么应当包含一个_data_对象,要么应当包含_error_对象,但不能两者都包含。如果_data_和_error_同时出现,则_error_对象优先。
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#error)error
~~~
属性值类型: 对象(object)
父节点: -
~~~
表明错误发生,提供错误的详细信息。错误的格式支持从服务返回一个或多个错误。一个JSON响应可以有一个_data_对象或者一个_error_对象,但不能两者都包含。如果_data_和_error_都出现,_error_对象优先。
示例:
~~~
{
"apiVersion": "2.0",
"error": {
"code": 404,
"message": "File Not Found",
"errors": [{
"domain": "Calendar",
"reason": "ResourceNotFoundException",
"message": "File Not Found
}]
}
}
~~~
- 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对象的保留属性名
- 用于分页的保留属性名
- 用于链接的保留属性名
- 错误对象中的保留属性名
- 属性顺序
- 示例
- 附录