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/目录下




剩余39页未读,继续阅读

















评论16