使用molicode进行json数据处理
背景描述
在日常工作中,我们常常需要将复杂的json数据进行提取,汇总计算等操作。又或者将json数据提取到Excel文件之中。下面我们通过3个例子介绍一下molicode如何完成这个操作。
示例1:json数据提取
场景:假设我们有一个json数据列表,我们只需要提取其中的 address.provinceId字段:
数据:(数据模型类型为:json)
[ { "userName":"david", "gender":"male", "age":10, "address":{ "provinceId":1, "cityId":122, "countyId":2332 } }, { "userName":"lucy", "gender":"female", "age":33, "address":{ "provinceId":12, "cityId":1224, "countyId":24332 } }, { "userName":"jack", "gender":"male", "age":86, "address":{ "provinceId":4, "cityId":1252, "countyId":23326 } }]
模板代码:
<% println "用户名称\t省份ID" data.each { item -> println item.userName + "\t" + item.address.provinceId; }%>
输出:
==============模板输出开始 =================用户名称 省份IDdavid 1lucy 12jack 4==============模板输出结束 =================
示例2:json数据计算
场景:假设我们有一个json数据列表,我们需要计算年龄之和
数据:(数据模型类型为:json)
[ { "userName":"david", "gender":"male", "age":10, "address":{ "provinceId":1, "cityId":122, "countyId":2332 } }, { "userName":"lucy", "gender":"female", "age":33, "address":{ "provinceId":12, "cityId":1224, "countyId":24332 } }, { "userName":"jack", "gender":"male", "age":86, "address":{ "provinceId":4, "cityId":1252, "countyId":23326 } }]
模板代码:
<% def sumAge = 0; data.each { item -> sumAge += item.age; } println "sumAge=" + sumAge;%>
输出:
==============模板输出开始 =================sumAge=129==============模板输出结束 =================
示例3:行列转生成SQL语句
我们常常需要将Excel里面的数据生成SQL,而待处理的数据一般是标准的行列结构。
数据:(数据模型类型为:单元文本处理)
1 张三 12 male 2 李梅 13 female
模板:
<% data.each { line ->%>insert into user_info(id,user_name,age,gender,status,created,modified) values(${line.get(0)}, '${line.get(1)}', ${line.get(2)},'${line.get(3)}',1,now(),now());<%}%>
生成结果:
[行列数据生成SQL语句]模板执行成功,输出到前台,应输出路径:/study_output/insert.sql==============模板输出开始 =================insert into user_info(id,user_name,age,gender,status,created,modified) values(1, '张三', 12,'male',1,now(),now() );insert into user_info(id,user_name,age,gender,status,created,modified) values(2, '李梅', 13,'female',1,now(),now() );==============模板输出结束 =================
总结
使用molicode可以做很多编程式的数据处理。当然,你也可以开发好模板,提供给你的朋友或者客户做数据处理之用。模板本身的可编程性是通过groovy脚本,或者velocity模板等实现的,语法都是通用公开的。目前主要还是建议使用groovy temple语法生成。
以上示例模板工程可以从git仓库中下载使用:
molicode使用介绍请使用: