6.1 开发入门:第一个json 新建一个扩展名json的文件,如one.json(下图) 然后录入如下内容 {"item":{ <chtml> <!-- 数据准备部分,您可以从数据库中查询 --> <bag id=item suffix=0> <we name=name>土豆</we> <we name=price>1.24</we> <we name=unit>KG</we> </bag> <bag id=item suffix=1> <we name=name>T恤</we> <we name=price>68</we> <we name=unit>件</we> </bag> <bag id=item suffix=2> <we name=name>可乐</we> <we name=price>2.20</we> <we name=unit>瓶</we> </bag> <bag id=item suffix=3> <we name=name>书</we> <we name=price>51.24</we> <we name=unit>本</we> </bag> </chtml> <chtml> <!-- 正式json格式的内容 --> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </chtml> },"sort":@{int:@{item:getSuffix}+1} } 在EditPlus的效果如下图 用浏览器查看的效果如下图 例子文件_samples/app/one.json在_samples/app/目录下 6.2 开发提高 请学习同一下载包中的开发手册中的基本标签语言及表达式 6.3 精通移动App应用服务程序开发 熟悉轻开平台针对移动App(json格式)的规则及开发例子 除了基本开发标签语言及表达式(参见同一下载包中的开发手册)外,轻开平台特别针对移动App最常用的json文本格式开发的对应规则: 文件扩展名须为json(如:one.json)或用JspEasy扩展 文件内容须为闭合的json格式,静态内容则可直接书写json格式,如: {“item”: { <chtml> … … </chtml> },”other”:”other value” } value属性参数表示输出不带引号的值,如: <price value>@{item:price}</price> 输出:"price":51.24 list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等) <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}"> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等) --> <name>@{item:name}</name> <price value>@{item:price}</price> <unit>@{item:unit}</unit> </item> </for> nolast属性参数表示数组后边输出一个逗号 <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}" nolast> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等), nolast属性参数表示数组后边输出一个逗号--> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </item> </for> <tatol>@{item:getLength}</tatol><!-- 前边的nolast就是用于在这组前边输出一个逗号 --> nokey属性参数表示不输出数组名称 <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}" nokey> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等), nokey属性参数表示不输出数组名称--> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </item> </for> 无名称数组直接累成字符串输出即可 <chtml> <!-- 正式json格式的内容,无名称数组直接累成字符串输出即可 --> <for bags=item end="@{item:getLength}"> <if x="@{item:getSuffix}" else=1> <bag id=pPage x=0><we name=name>"@{item:name}"</we></bag> <bag id=pPage><we name=name>@{pPage:name},"@{item:name}"</we></bag> </if> </for> </chtml>[@{pPage:name}] 空数组直接输出: [] 下边将结合实例进行学习 6.3.1 输出Bag中的一条记录 闭合的json格式内容 {“item”: { <chtml> … … </chtml> },"sort":@{int:@{item:getSuffix}+1} } 与内层的标签运行结果共同组织一个完整的json格式文本输出到App 初始化Bag中的记录(您也可以从数据库中查询) <bag id=item suffix=0> <we name=name>土豆</we> <we name=price>1.24</we> <we name=unit>KG</we> </bag> <bag id=item suffix=1> <we name=name>T恤</we> <we name=price>68</we> <we name=unit>件</we> </bag> <bag id=item suffix=2> <we name=name>可乐</we> <we name=price>2.20</we> <we name=unit>瓶</we> </bag> <bag id=item suffix=3> <we name=name>书</we> <we name=price>51.24</we> <we name=unit>本</we> </bag> 输出其中的一条 <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> value属性参数表示输出不带引号的值 结果 {"item":{ "name":"书","price":51.24,"unit":"本"},"sort":4 } 完整代码 {"item":{ <chtml> <!-- 数据准备部分,您可以从数据库中查询 --> <bag id=item suffix=0> <we name=name>土豆</we> <we name=price>1.24</we> <we name=unit>KG</we> </bag> <bag id=item suffix=1> <we name=name>T恤</we> <we name=price>68</we> <we name=unit>件</we> </bag> <bag id=item suffix=2> <we name=name>可乐</we> <we name=price>2.20</we> <we name=unit>瓶</we> </bag> <bag id=item suffix=3> <we name=name>书</we> <we name=price>51.24</we> <we name=unit>本</we> </bag> </chtml> <chtml> <!-- 正式json格式的内容 --> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </chtml> },"sort":@{int:@{item:getSuffix}+1} } 例子文件_samples/app/one.json在_samples/app/目录下 6.3.2 输出Bag中的所有记录为一个json数组 闭合的json格式内容 {“item”: { <chtml> … … </chtml> } ,"tatol":@{item:getLength} } 与内层的标签运行结果共同组织一个完整的json格式文本输出到App 初始化Bag中的记录 同上 (您也可以从数据库中查询,如) <esql module=help id=item>Select ID,Subject,Writer,DayTime,Body From Messages</esql> 输出Bag中的所有记录 <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}"> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等) --> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </item> </for> list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等) 结果 {"items":{ "item":[{"name":"土豆","price":1.24,"unit":"KG"},{"name":"T恤","price":68,"unit":"件"},{"name":"可乐","price":2.20,"unit":"瓶"},{"name":"书","price":51.24,"unit":"本"}]},"tatol":4 } 完整代码 {"items":{ <chtml> <!-- 数据准备部分,您可以从数据库中查询 --> <bag id=item suffix=0> <we name=name>土豆</we> <we name=price>1.24</we> <we name=unit>KG</we> </bag> <bag id=item suffix=1> <we name=name>T恤</we> <we name=price>68</we> <we name=unit>件</we> </bag> <bag id=item suffix=2> <we name=name>可乐</we> <we name=price>2.20</we> <we name=unit>瓶</we> </bag> <bag id=item suffix=3> <we name=name>书</we> <we name=price>51.24</we> <we name=unit>本</we> </bag> </chtml> <chtml> <!-- 正式json格式的内容 --> <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}"> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等) --> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </item> </for> </chtml> },"tatol":@{item:getLength} } 例子文件_samples/app/one_array.json在_samples/app/目录下 6.3.3 nolast属性(输出Bag中的所有记录为一个json数组) 闭合的json格式内容 同上 初始化Bag中的记录 同上 输出Bag中的所有记录,并在数组后边输出一个逗号 <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}" nolast> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等), nolast属性参数表示数组后边输出一个逗号--> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </item> </for> <tatol>@{item:getLength}</tatol><!-- 前边的nolast就是用于在这组前边输出一个逗号 --> nolast属性参数表示数组后边输出一个逗号,表示数组后边还有同层标签需要输出 结果 {"items":{ "item":[{"name":"土豆","price":1.24,"unit":"KG"},{"name":"T恤","price":68,"unit":"件"},{"name":"可乐","price":2.20,"unit":"瓶"},{"name":"书","price":51.24,"unit":"本"}],"tatol":"4"} } 完整代码 {"items":{ <chtml> <!-- 数据准备部分,您可以从数据库中查询 --> <bag id=item suffix=0> <we name=name>土豆</we> <we name=price>1.24</we> <we name=unit>KG</we> </bag> <bag id=item suffix=1> <we name=name>T恤</we> <we name=price>68</we> <we name=unit>件</we> </bag> <bag id=item suffix=2> <we name=name>可乐</we> <we name=price>2.20</we> <we name=unit>瓶</we> </bag> <bag id=item suffix=3> <we name=name>书</we> <we name=price>51.24</we> <we name=unit>本</we> </bag> </chtml> <chtml> <!-- 正式json格式的内容 --> <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}" nolast> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等), nolast属性参数表示数组后边输出一个逗号--> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </item> </for> <tatol>@{item:getLength}</tatol><!-- 前边的nolast就是用于在这组前边输出一个逗号 --> </chtml> } } 例子文件_samples/app/one_array_nolast.json在_samples/app/目录下 6.3.4 nokey属性(输出Bag中的所有记录为一个json数组) 闭合的json格式内容 不需要 初始化Bag中的记录 同上 输出Bag中的所有记录,不输出数组名称 <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}" nokey> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等), nokey属性参数表示不输出数组名称--> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </item> </for> nokey属性参数表示不输出数组名称 结果 [{"name":"土豆","price":1.24,"unit":"KG"},{"name":"T恤","price":68,"unit":"件"},{"name":"可乐","price":2.20,"unit":"瓶"},{"name":"书","price":51.24,"unit":"本"}] 完整代码 <chtml> <!-- 数据准备部分,您可以从数据库中查询 --> <bag id=item suffix=0> <we name=name>土豆</we> <we name=price>1.24</we> <we name=unit>KG</we> </bag> <bag id=item suffix=1> <we name=name>T恤</we> <we name=price>68</we> <we name=unit>件</we> </bag> <bag id=item suffix=2> <we name=name>可乐</we> <we name=price>2.20</we> <we name=unit>瓶</we> </bag> <bag id=item suffix=3> <we name=name>书</we> <we name=price>51.24</we> <we name=unit>本</we> </bag> </chtml> <chtml> <!-- 正式json格式的内容 --> <for bags=item end="@{item:getLength}"> <item list="@{item:getSuffix}" end="@{item:getLength}" nokey> <!-- list属性参数表示输出为数组列表格式,end属性参数表示数组结束的位置(跟for的end值相等), nokey属性参数表示不输出数组名称--> <name>@{item:name}</name> <price value>@{item:price}</price><!-- value属性参数表示输出不带引号的值 --> <unit>@{item:unit}</unit> </item> </for> </chtml> 例子文件_samples/app/array_nokey.json在_samples/app/目录下 6.3.5 输出Bag中的所有记录为一个只有值的json数组 闭合的json格式内容 不需要 初始化Bag中的记录 同上 把Bag中的所有记录的name值累加成一个字符串 <for bags=item end="@{item:getLength}"> <if x="@{item:getSuffix}" else=1> <bag id=pPage x=0><we name=name>"@{item:name}"</we></bag> <bag id=pPage><we name=name>@{pPage:name},"@{item:name}"</we></bag> </if> </for> 只输出值的数组直接累加成字符串输出即可 输出 [@{pPage:name}] 结果 ["土豆","T恤","可乐","书"] 完整代码 <chtml> <!-- 数据准备部分,您可以从数据库中查询 --> <bag id=item suffix=0> <we name=name>土豆</we> <we name=price>1.24</we> <we name=unit>KG</we> </bag> <bag id=item suffix=1> <we name=name>T恤</we> <we name=price>68</we> <we name=unit>件</we> </bag> <bag id=item suffix=2> <we name=name>可乐</we> <we name=price>2.20</we> <we name=unit>瓶</we> </bag> <bag id=item suffix=3> <we name=name>书</we> <we name=price>51.24</we> <we name=unit>本</we> </bag> </chtml> <chtml> <!-- 正式json格式的内容,只输出值的数组直接累成字符串输出即可 --> <for bags=item end="@{item:getLength}"> <if x="@{item:getSuffix}" else=1> <bag id=pPage x=0><we name=name>"@{item:name}"</we></bag> <bag id=pPage><we name=name>@{pPage:name},"@{item:name}"</we></bag> </if> </for> </chtml>[@{pPage:name}] 例子文件_samples/app/array_only_value.json在_samples/app/目录下 6.3.6 输出无名称的空值数组 直接输出 [] 例子文件_samples/app/array_null.json在_samples/app/目录下 移动App应用服务器开发涉及到构建能够支持Android和iOS设备的应用后台服务。本文主要介绍轻开平台,这是一个专门针对移动App的开发平台,它提供了一种高效的方法来处理JSON格式的数据,便于快速构建移动应用的服务器端。 入门阶段,开发者首先需要创建一个JSON文件,例如`one.json`,并填充数据。JSON数据结构包括一个或多个对象,每个对象由键值对组成。在提供的示例中,数据被设计成模拟商品列表,每个商品包含名称、价格和单位。这种结构允许服务器返回动态生成的JSON数据,客户端App可以解析这些数据来显示内容。 提高阶段,轻开平台提供了丰富的标签和表达式来处理JSON格式。例如,`<price value="@{item:price}" />`标签用于输出商品的价格,其中`value`属性表示输出时不带引号的数值。此外,`<for>`循环和`<item>`标签用于遍历和构建数组列表,如商品列表。`nolast`属性用于在数组的最后一个元素后面添加逗号,`nokey`属性则用于不输出数组名称,直接输出数组值。 精通阶段,开发者需要熟悉轻开平台的规则,包括文件扩展名必须是`.json`或使用JspEasy扩展,以及文件内容必须是闭合的JSON格式。此外,平台还提供了特定的语法,如`list`属性用于输出数组列表,`end`属性用于定义数组的结束位置,`nolast`用于控制是否在数组结尾添加逗号,`nokey`则用于隐藏数组的键。 通过示例,我们可以看到如何输出单个商品记录、所有商品记录组成的数组以及处理空数组。例如,输出一条商品记录时,`<name>@{item:name}</name><price value="@{item:price}"></price><unit>@{item:unit}</unit>`会生成类似`{"name":"书","price":51.24,"unit":"本"}`这样的JSON对象。而输出所有商品记录为一个数组时,`<for>`循环和`list`属性将生成`{"items":{"item":[{"name":"土豆","price":1.24,"unit":"KG"},{"name":"T恤","price":68,"unit":"件"},...],"tatol":4}}`这样的结构。 移动App应用服务器开发需要掌握JSON格式的处理,以及轻开平台提供的特殊语法和属性,以便于动态生成和组织数据,满足移动应用的实时数据需求。这包括理解和运用`value`、`list`、`nolast`、`nokey`等属性,以及如何使用`<for>`循环来处理数组数据。通过熟练掌握这些技术,开发者可以更高效地构建功能丰富的移动应用服务器。
剩余39页未读,继续阅读
- 粉丝: 89
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Matlab Simulink的变压器励磁模型:质量卓越,模拟电压暂降等电能质量问题,适配IEEE 33节点模型,变压器励磁模型 Matlab simulink 质量过硬 可用于模拟电压暂降等
- libgxps-tools-0.3.0-4.el7.x64-86.rpm.tar.gz
- “智能电网多时段多公司需求响应管理的博弈理论框架与策略优化研究”,智能电网中多时段多公司需求响应管理的博弈理论框架 利用博弈论建立了一个考虑公司和消费者之间相互作用的多时期多公司需求响应框架 在St
- libhangul-0.1.0-8.el7.x64-86.rpm.tar.gz
- 基于插电式电动汽车提升电网暂态稳定性的控制策略:Python联合PSS E源代码实现与性能探究,利用插电式电动汽车提高电网暂态稳定性 python联合PSS E源代码,代码按照高水平文章复现,保证正确
- libhangul-devel-0.1.0-8.el7.x64-86.rpm.tar.gz
- libhbaapi-2.2.9-6.el7.x64-86.rpm.tar.gz
- libhbaapi-devel-2.2.9-6.el7.x64-86.rpm.tar.gz
- libhbalinux-1.0.17-2.el7.x64-86.rpm.tar.gz
- libhbalinux-devel-1.0.17-2.el7.x64-86.rpm.tar.gz
- 自适应在线学习的概率负荷预测技术:结合Python与Matlab的智能管理策略提高能源供需匹配精度与成本控制 ,基于自适应在线学习的概率负荷预测python联合matlab源代码 负荷预测对于多种能源
- libhif-0.2.1-2.el7.x64-86.rpm.tar.gz
- Cruise纯电动车仿真模型实现电制动优先能量回收策略与灵活模块参数调整说明,cruise纯电动车仿真模型,实现电制动优先的能量回收策略 关于模型:模型是base模型,控制策略是使用c-code编写
- libhif-devel-0.2.1-2.el7.x64-86.rpm.tar.gz
- libhugetlbfs-2.16-13.el7.x64-86.rpm.tar.gz
- 小米一代扫地机平台揭秘:简洁高效的代码规范,工程师必备学习项目,平台采用小米1代扫地机 目前只有32端代码能实现延边避障防跌 落充电等功能 适合需要学习项目与代码规范的工程师 硬件驱动包含
- 1
- 2
- 3
- 4
前往页