首页 > 编程语言 >Java Map填充Json模版,并生成Json文件

Java Map填充Json模版,并生成Json文件

时间:2023-10-23 10:44:07浏览次数:36  
标签:Map Java String map content Json put new

一、准备工作

  1. 引入基础的springboot环境
  2. 引入freemark依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
  1. 创建json模版

{

    "parameter":{
        "username":"${readerUsername}",
        "password":"${readerPassword}"
    }

}

二、创建读取模版工具类

package com.luwang.data.datax.util;

import freemarker.template.Configuration;
import freemarker.template.Template;

import java.io.StringWriter;
import java.util.HashMap;

public class FreeMarkerTemplateUtils {

    public String getData(String filePath, HashMap<Object, Object> map) throws Exception {
        StringWriter writer = new StringWriter();

        //创建配置类
        Configuration cfg = new Configuration(Configuration.getVersion());
        // 设置类加载机制加载模板,这里可以参考http://freemarker.foofun.cn/pgui_config_templateloading.html的内容,这是用的第二种方法。
        cfg.setClassForTemplateLoading(this.getClass(),"/");
        // 设置字符集
        cfg.setDefaultEncoding("UTF-8");

        // 加载模板
        Template template = cfg.getTemplate(filePath);
        // 静态化内容
        template.process(map,writer);
        String content = writer.toString();

        return content;
    }
}

三、根据模版生成Json文件


    @Test
    void myDeliver3() throws Exception {
        // 该文件在resources目录下
        String filePath = "/job/JobModel.ftl";
        FreeMarkerTemplateUtils utils = new FreeMarkerTemplateUtils();

        HashMap<Object, Object> map = new HashMap<Object, Object>();
        map.put("readerUsername","root");
        map.put("readerPassword","Lqgs@2022");
        map.put("writeUsername","Lqgs@2022");
        map.put("writePassword","Lqgs@2022");
        map.put("channel","2");
        String content = utils.getData(filePath,map);
        System.out.println(content);

        FileWriter fileWriter = new FileWriter("D:\\JavaCode\\data-middle-platform\\data-datax\\datax\\job\\JobModel-2023-01.json");
        fileWriter.write(content);
        fileWriter.close();

    }

标签:Map,Java,String,map,content,Json,put,new
From: https://www.cnblogs.com/zouxiaoao/p/17781851.html

相关文章

  • CyclicBarrier和CountDownLatch有什么区别?Semaphore(信号量)了解吗?
    一、CyclicBarrier和CountDownLatch有什么区别?两者最核心的区别:CountDownLatch是一次性的,而CyclicBarrier则可以多次设置屏障,实现重复利用;CountDownLatch中的各个子线程不可以等待其他线程,只能完成自己的任务;而CyclicBarrier中的各个线程可以等待其他线程二、Semaphore(信号量)Sema......
  • 10月23日粘包学习以及struct模块和json模块
    目录粘包如何解决粘包问题呢?struct模块json模块粘包粘包:tcp会把数据量较小,时间间隔较短的数据,当做同一个包发送粘包问题图粘包问题说白了就是客户端传给服务器的数据到服务器的时候有部分数据粘在了一块,而不是一条条的显示粘包产生情况大致图如何解决粘包问题呢?简单的方......
  • 轻松合并Excel工作表:Java批量操作优化技巧
    摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在Excel中设计表单时,我们经常需要对收集的信息进行统计分析。例如,学校给老师统计课时,医院给医护人员统计班次等。传统的手工方式需要......
  • 为什么Java的 +=, -=, *=, /= 复合赋值运算符不需要将long转换为int?
    内容来自DOC[https://q.houxu6.top/?s=为什么Java的+=,-=,*=,/=复合赋值运算符不需要将long转换为int?](https://q.houxu6.top/?s=为什么Java的+=,-=,*=,/=复合赋值运算符不需要将long转换为int?)直到今天,我认为例如:i+=j;只是一个i=i+j;的快捷方式。但......
  • java异常处理
    空指针异常(NullPointerException)空指针异常是JAVA中最常见的异常之一,当我们尝试使用一个空对象的方法或属性时,就会抛出该异常。为了避免空指针异常,我们可以在使用对象之前进行判空处理,或者使用Optional类来代替可能为空的对象。数组越界异常(ArrayIndexOutOfBoundsException)......
  • 一键解决json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    json.decoder.JSONDecodeError:Expectingvalue:line1column1(char0)文章目录问题描述解决思路解决方法问题描述json.decoder.JSONDecodeError:Expectingvalue:line1column1(char0)解决思路JSONDecodeError是指在使用json.loads()方法时,解析JSONJSONDecodeError是......
  • java并发线程
    在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(boolon);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前调用,否则运行......
  • java复习
    1、Java常用集合及特点?List:ArrayList、LinkedList、Vector、StackSet:LinkedSet、HashSet、TreeSetQueue->Deque->LinkedList。Map:HashMap、LinkedHashMap、TreeMapDictionary->HashTable->Properties。Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,默认长度为10,超......
  • 什么是java集合框架
    Java集合框架是Java编程语言提供的一组类和接口,用于处理和存储数据集合。它提供了各种数据结构和算法,以便开发者能够高效地操作数据,无需自行实现这些数据结构。Java集合框架的主要目标是提供一种通用的、标准的方法来处理和存储不同类型的数据,使开发更加方便和高效。以下是Java集......
  • Java并发
    Java并发基础并发:多个任务在同一时间段内交替执行并行:多个任务在同一时刻同时执行Java线程创建方式继承Thread和实现接口继承Thread类并重写run,之后调用start方法启动线程,注意:调用run只是普通的方法调用,不会新开线程。例如如下匿名类继承Thread。Threadthread=new......