目录
介绍
- 在javascript 中 将第一个组件传来的文本转成json
- 然后执行脚本操作该数据格式
- 然后把数据写入到文本弄出来
view
javascript
//读取内容在写入内容
var InputStreamCallback = Java.type("org.apache.nifi.processor.io.InputStreamCallback");
var OutputStreamCallback = Java.type("org.apache.nifi.processor.io.OutputStreamCallback");
var IOUtils = Java.type("org.apache.commons.io.IOUtils");
var StandardCharsets = Java.type("java.nio.charset.StandardCharsets");
var flowFile = session.get();
if(flowFile != null) {
try {
var text = "";
// 读取flowFile中内容
session.read(flowFile,new InputStreamCallback(function(inputStream) {
var str = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
//由JSON字符串转换为JSON对象
var obj = JSON.parse(str);
obj.age = 18
//将JSON对象转化为JSON字符
text = JSON.stringify(obj);
}));
// 向flowFile中写入内容
flowFile = session.write(flowFile, new OutputStreamCallback(function(outputStream) {
outputStream.write(text.getBytes(StandardCharsets.UTF_8))
}));
session.transfer(flowFile, REL_SUCCESS)
} catch(e) {
log.error('Something went wrong', e)
session.transfer(flowFile, REL_FAILURE)
}
}
小解
- 引入点东西
var InputStreamCallback = Java.type("org.apache.nifi.processor.io.InputStreamCallback");
var OutputStreamCallback = Java.type("org.apache.nifi.processor.io.OutputStreamCallback");
var IOUtils = Java.type("org.apache.commons.io.IOUtils");
var StandardCharsets = Java.type("java.nio.charset.StandardCharsets");
- 定义 test
- session.read读出内容
- 把文本转json
- 然后修改内容
- 在写入流,让后边使用
var flowFile = session.get();
if(flowFile != null) {
try {
var text = "";
// 读取flowFile中内容
session.read(flowFile,new InputStreamCallback(function(inputStream) {
var str = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
//由JSON字符串转换为JSON对象
var obj = JSON.parse(str);
obj.params1 = 100;
obj.params2 = 200;
obj.params3 = [1,2,3,4,4,5];
obj.params6 = [{"a":"as","b":"bs"}];
//将JSON对象转化为JSON字符
text = JSON.stringify(obj);
}));
// 向flowFile中写入内容
flowFile = session.write(flowFile, new OutputStreamCallback(function(outputStream) {
outputStream.write(text.getBytes(StandardCharsets.UTF_8))
}));
session.transfer(flowFile, REL_SUCCESS)
} catch(e) {
log.error('Something went wrong', e)
session.transfer(flowFile, REL_FAILURE)
}
}
开始内容
结果
ok
持续更新