使用molicode进行json数据处理

原创
2019/04/10 15:16
阅读数 1.9K

使用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;
    }
%>

输出:

==============模板输出开始 =================
用户名称	省份ID
david	1
lucy	12
jack	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仓库中下载使用:

https://github.com/cn2oo8/molicode-template-study

molicode使用介绍请使用: https://github.com/cn2oo8/molicode

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
2 收藏
0
分享
返回顶部
顶部