我是靠谱客的博主 细心篮球,最近开发中收集的这篇文章主要介绍NiFi Groovy脚本, XML转JSONNiFi Groovy脚本, XML转JSON,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

NiFi Groovy脚本, XML转JSON

  1. 使用 ExecuteScript Processor

  2. 修改属性如下
    在这里插入图片描述
    Module Dircetory: Groovy 脚本依赖的 jar 包存放目录

  3. Groovy 脚本

import org.apache.commons.io.IOUtils
import java.nio.charset.StandardCharsets

import com.alibaba.fastjson.JSONObject
import org.jdom2.Document
import org.jdom2.Element
import org.jdom2.input.SAXBuilder

/**
 * @author xh-M 2021/8/10 14:41
 */

FlowFile flowFile = session.get()
InputStream read = session.read(flowFile)

String s = IOUtils.toString(read, String.valueOf(StandardCharsets.UTF_8))
read.close()

int index = s.indexOf("<");
String substring = s.substring(index);

JSONObject obj = new JSONObject();
try {
    InputStream is = new ByteArrayInputStream(substring.getBytes("utf-8"));
    SAXBuilder sb = new SAXBuilder();
    Document doc = sb.build(is);
    Element root = doc.getRootElement();
    obj.put(root.getName(), iterateElement(root));
    String result = obj.toString()

    OutputStream write = session.write(flowFile);
    IOUtils.write(result,write);
    write.close()
} catch (Exception e) {
    e.printStackTrace();
}

session.transfer(flowFile,REL_SUCCESS);

private static Map iterateElement(Element element) {
    List jiedian = element.getChildren();
    Element et = null;
    Map obj = new HashMap();
    List list = null;
    for (int i = 0; i < jiedian.size(); i++) {
        list = new LinkedList();
        et = (Element) jiedian.get(i);
        if (et.getTextTrim().equals("")) {
            if (et.getChildren().size() == 0)
                continue;
            if (obj.containsKey(et.getName())) {
                list = (List) obj.get(et.getName());
            }
            list.add(iterateElement(et));
            obj.put(et.getName(), list);
        } else {
            if (obj.containsKey(et.getName())) {
                list = (List) obj.get(et.getName());
            }
            list.add(et.getTextTrim());
            obj.put(et.getName(), list);
        }
    }
    return obj;
}
  1. jar包如下, 可在阿里Maven仓库中下载

最后

以上就是细心篮球为你收集整理的NiFi Groovy脚本, XML转JSONNiFi Groovy脚本, XML转JSON的全部内容,希望文章能够帮你解决NiFi Groovy脚本, XML转JSONNiFi Groovy脚本, XML转JSON所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部