顶级保留属性名称

最后更新于:2022-04-01 06:07:18

**顶级的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 }] } } ~~~
';