- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:19108035856(电话支持时间:9:00-19:00)。
Espressif IoT SDK Json 命名准则
Status Released
Current version V0.1
Author Liu Han
Completion Date 2014.6.19
Reviewer Wu Jiangang
Completion Date 2014.6.19
[ ]
[ ] INTERNAL
[ ] PUBLIC
版本信息2
3
1.前言4
2.准则5
2.1. 一般准则5
2.1.1. 注释5
2.1.2. 使 引号5
2.1.3. 扁平化数据 VS 结构化数据5
2.2. 属性名准则6
2.2.1. 属性名格式6
2.2.2. 命名 6
2.2.3. 属性值准则7
1.前言
本文主要介绍基于ESP_IOT lib库创建的JSON APIs而提供的指导性准则和建
议。总体来讲,JSON APIs应遵循JSON.org上的规范。这份准则澄清和标准化了
特定情况,适用于基于REST风格的API的JSON请求和响应。
2.准则
为了更好地实现这份的规范目的,下面几项需要说明:
属性(property) - JSON对象内的键值对(name/value pair)
属性名(property name) - 属性的名称
属性值(property value) - 分配给属性的值
示例:
{
// 一组键值对称作一个 "属性".
"propertyName": "propertyValue"
}
2.1. 一般准则
2.1.1. 注释
JSON对象中不应该包含注释。
2.1.2. 使 引号
如果(某个)属性需要引号,则必须使 引号。所有的属性名必须在双引号内。字
符类型的属性值必须使 引号。其它类型值(如 或数字)不应该使 引
号。
2.1.3. 扁平化数据 VS 结构化数据
JSON中的属性元素应以扁平化方式呈现,不能为了方便而将数据任意分组。
但是,在某些情况下,结构化的方式对开发人员来讲更有意义。比如描述单
一结构的一批属性,因它被用来保持结构层次,所以是有意义的,遇到这些情况
应当慎重考虑。示例:
扁平化方式:
{
" ": "tenda_837R",
"password": ""
}
结构化方式:
{
"Requese": {
"Station": {
“Connect":{
" ": "tenda_837R",
"password": ""
}
}
}
}
2.2. 属性准则
2.2.1. 属性名准则
选择有意义的属性名。必须遵循以下准则:
属性名应该是具有定义语义的有意义的名称;
属性名必须是驼峰式的,ASCII码字符串;
首字符必须是不能包含数字;
当一个属性名有子属性,而无属性值时,首字符大写;
当一个属性名无子属性,但有属性值时,小写;
随后的其他字符可以包含数字。
示例:
{
"Response":{ "status"
:0
}
}
2.2.2. 命名
新的属性可在将来被添加进保留列表中。如果存在命名 ,可通过选择新的属
性名或者版本化来解决这个问题。示例:
{
"version": "1.0",
"message":
{ "sucessful":true,
"information": "flash.bin",
"data": ["sensor", "device"]
}
}
如果希望将来把information列为保留字,可以通过下面两件事情来达成。
1.选一个不同的名字
{
"version": "1.0",
"Message":
{ "sucessful":true,
"information": "flash.bin",
"information0": "irom.
文档评论(0)