diff --git a/docs/data_json.md b/docs/data_json.md index 50a1e17..ec48b67 100644 --- a/docs/data_json.md +++ b/docs/data_json.md @@ -3,71 +3,40 @@ # json 数据源 -## 以复合json文件形式组织 - -整个表以一个或者多个json文件的形式组织。在table的input属性中手动指定json数据源,有以下几种格式: -- xxx.json,把xxx.json当作一个记录读入。 -- *@xxx.json,把xxx.json当作记录列表读入。 -- field@xxx.json,把 xxx.json中的field字段当作一个记录读入。field可以是深层次字段,比如 a.b.c。 -- *field@xxx.json,把xxx.json中的field字段当作记录列表读入。field可以是深层次字段。 - -比较有趣的是,与xlsx数据源相似,支持将多个表放到同一个json中,不过实践中极少这么做。 - -如下列示例: - -- TbCompositeJsonTable1 从 composite_tables.json的table1字段中读入记录列表,从composite_tables2.json中读入记录列表,从one_record.json中读入一个记录 -- TbCompositeJsonTable2 从 composite_tables.json的table2字段中读入记录列表 -- TbCompositeJsonTable3 从 composite_tables.json的table3字段中读入一个记录 +## json数据格式 -```xml - - - - - - - - - - - - +大多数数据格式填法符合直觉,有几个数据类型的格式比较特殊: +- set类型。填法为 [v1,v2,...] +- map类型。由于json只支持string类型的key,因此map格式填法为 [[k1,v1],[k2,v2]...] +- 多态bean类型。需要 \_\_type\_\_ 属性来指定具体类型名。 - -
-
-``` - -## 以目录树形式组织 -典型用法是,以目录为数据源(会遍历整棵目录树),目录树下每个json文件为一个记录,读入。 +不同数据结构在json中格式示例如下: ```xml - + - + - 多态数据结构 + - 使用;来分隔 + - - + + - -
``` -递归遍历test/json_datas整个目录树,**按文件名排序后**依次将每个json数据当作一个记录读入。其中1.json文件内容如下 +示例json文件内容如下 ```json { @@ -94,3 +63,61 @@ "k15":[{"__type__": "DemoD2", "x1":1, "x2":2}] } ``` + +## 以复合json文件形式组织 + +整个表以一个或者多个json文件的形式组织。在table的input属性中手动指定json数据源,有以下几种格式: +- xxx.json,把xxx.json当作一个记录读入。 +- *@xxx.json,把xxx.json当作记录列表读入。 +- field@xxx.json,把 xxx.json中的field字段当作一个记录读入。field可以是深层次字段,比如 a.b.c。 +- *field@xxx.json,把xxx.json中的field字段当作记录列表读入。field可以是深层次字段。 + +比较有趣的是,与xlsx数据源相似,支持将多个表放到同一个json中,不过实践中极少这么做。 + +如下列示例: + +- TbCompositeJsonTable1 从 composite_tables.json的table1字段中读入记录列表,从composite_tables2.json中读入记录列表,从one_record.json中读入一个记录 +- TbCompositeJsonTable2 从 composite_tables.json的table2字段中读入记录列表 +- TbCompositeJsonTable3 从 composite_tables.json的table3字段中读入一个记录 + + +```xml + + + + + + + + + + + + + +
+
+
+``` + +## 以目录树形式组织 +典型用法是,以目录为数据源(会遍历整棵目录树),目录树下每个json文件为一个记录读入。 + +如下,递归遍历test/json_datas整个目录树,**按文件名排序后**依次将每个json数据当作一个记录读入。 + +```xml +
+``` + +## 数据tag +与excel格式类似,json格式支持记录tag,用 \_\_tag\_\_ 属性来指明tag,示例如下: + +```json +{ + "__tag__":"dev", + "x":1, + "y":2 +} +``` + + diff --git a/docs/data_lua.md b/docs/data_lua.md index 85caf70..2cd8cc6 100644 --- a/docs/data_lua.md +++ b/docs/data_lua.md @@ -3,44 +3,40 @@ # Lua 数据源 -## 以复合lua文件形式组织 +## json数据格式 -整个表在一个或者多个lua文件中组织。用法与json数据源相似,参见 [json数据源](./data_json.md) +大多数数据格式符合直觉,有几个特殊点: +* 数据前有一个return,这是因为 lua 数据是当作 lua 文件加载的,每个加载后的结果当作一个记录读入。 +* set 的格式为 {v1, v2, ...} +* 与json不同,lua 的table的key支持任意格式,所以lua的map可以直接 {[key1] = value1, [key2] = value2, ,,,} -## 以目录树形式组织 -* 与 json 相似定义。 -* 唯一区别在于, lua 的table的key支持任意格式,所以 lua 的map 可以直接 {[key1] = value1, [key2] = value2, ,,,} -* ![如图](images/adv/def_42.png) -* 注意 数据前有一个 return 语句。因为 lua 数据是当作 lua 文件加载的,每个加载后的结果当作一个记录读入。 +定义 ```xml - + - + - 多态数据结构 + - 使用;来分隔 + - - + + - -
``` -递归遍历test/lua_datas整个目录树,**按文件名排序后**依次将每个lua数据当作一个记录读入。其中1.lua文件内容如下 - +示例数据 ```lua return @@ -66,4 +62,27 @@ return k9 = { {y1=1,y2=true}, {y1=10,y2=false} }, k15 = { { __type__="DemoD2", x1 = 1, x2=3} }, } +``` + +## 以复合lua文件形式组织 + +整个表在一个或者多个lua文件中组织。用法与json数据源相似,参见 [json数据源](./data_json.md) + +## 以目录树形式组织 + +典型用法是,以目录为数据源(会遍历整棵目录树),目录树下每个lua文件为一个记录读入。如下示例,递归遍历test/lua_datas整个目录树,**按文件名排序后**依次将每个lua数据当作一个记录读入。 + +```xml +
+``` + +## 数据tag +与excel格式类似,也支持记录tag,用 \_\_tag\_\_ 属性来指明tag,示例如下: + +```lua +return { + __tag__ = "dev", + x = 1, + y = 2, +} ``` \ No newline at end of file