ECMAscript 获取所有属性

把所有属性信息打印到流内容,过滤排除一些默认的服务信息属性

 1 var StreamCallback =  Java.type("org.apache.nifi.processor.io.StreamCallback")
 2 var IOUtils = Java.type("org.apache.commons.io.IOUtils");
 3 var StandardCharsets = Java.type("java.nio.charset.StandardCharsets");
 4 var flowFile = session.get();
 5 var text = '';
 6 if(flowFile != null) {
 7     try {
 8         var attrs = flowFile.getAttributes();
 9         flowFile = session.write(flowFile,new StreamCallback(function(inputStream, outputStream) {
10             var obj = {};
11             for each (var attrKey in attrs.keySet()) {
12                   if(attrKey.indexOf('http.')==-1 && attrKey.indexOf('RouteOnAttribute.')==-1 && attrKey != 'path'){
13                   obj[attrKey] = attrs[attrKey];
14                 }
15             }
16             text = JSON.stringify(obj);
17             outputStream.write(text.getBytes(StandardCharsets.UTF_8))
18         }));
19         session.transfer(flowFile, REL_SUCCESS)
20     } catch(e) {
21         session.transfer(flowFile, REL_FAILURE)
22     }
23 }

 

posted @ 2021-07-22 14:17  木章  阅读(55)  评论(0编辑  收藏  举报