当前流行的接口服务通常要求传 json 类型的数据。本文记录一下,我的处理方式。
原始表数据
表结构
目标JSON数据
步骤
1.创建数据库连接
2.创建生成JSON转换
1.表输入
2.表行数据转成json
3.解析每行的JSON结果
4.每行的json结果写入数据库
2.创建每行JSON结果组合的转换
1.表数据输入
2.合并拼接每行的json结果
3.java脚本处理拼接好的字符串,组装成模板结果
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
if (first) {
first = false;
}
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
r = createOutputRow(r, data.outputRowMeta.size());
String json = get(Fields.In, "json").getString(r);
json = "{\"data\":["+json+"]}";
get(Fields.Out, "json").setValue(r, json);
putRow(data.outputRowMeta, r);
return true;
}
4.输出或使用生成的json字符串
为了说明操作步骤,我只是把最后生成的内容输出到了文本文档。实际操作中可直接用相应的组件使用生成的结果
3.创建表数据生成json的汇总job
4.运行后查看结果
表数据
生成的JSON数据