java使用Jackson将内容输出为.json文件

工作的时候遇到一个需求,需要将某些查询的东西输出为.json文件,之后通过某些手段进行传输,还有种常见的需求是输出为.zip文件,这个见另一个,本篇简单介绍输出为.json文件。

首先我们创建一个User类模拟我们查到的结果(实际情况下你可能查到了一个列表、一份清单等,但是都可以创建一个类,定义字段去接收查询的结果)。

public class User {

    private String name;

    private int age;

    private List<String> genders;

    public User() {
    }

    public User(String name, int age, List<String> genders) {
        this.name = name;
        this.age = age;
        this.genders = genders;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public List<String> getGenders() {
        return genders;
    }

    public void setGender(List<String> genders) {
        this.genders = genders;
    }
}

之后简单造一些数据,然后实现输出为.json文件。

public class JsonWrite {

    public static void main(String[] args) {

        // 模拟数据
        List<User> users = new ArrayList<>();
        users.add(new User("张小三", 18, Collections.singletonList("男")));
        users.add(new User("李小四", 28, Collections.singletonList("女")));
        users.add(new User("王小五", 38, Arrays.asList("男", "女")));

        // 指定文件存放的文件夹位置
        String folderPath = "E:/write";
        // 指定文件名称
        String fileName = "user.json";

        // 校验文件夹是否存在,不存在创建
        File folder = new File(folderPath);
        if (!folder.exists()) {
            folder.mkdirs();
        }

        // 将目录路径和文件名组合成完整的文件路径
        File file = new File(folderPath, fileName);

        // 创建对象准备序列化
        ObjectMapper objectMapper = new ObjectMapper();
        // 启用格式化(自动换行)
        objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
        try {
            // 序列化文件(反序列化为readValue(jsonString, User.class))
            objectMapper.writeValue(file, users);
            System.out.println("输出成功" + file.getAbsolutePath());
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("输出失败");
        }
    }
}

控制台打印:输出成功E:\write\user.json。

打开E盘找到write文件夹,里面有user.json文件,选择idea打开,结果为:

[ {
  "name" : "张小三",
  "age" : 18,
  "genders" : [ "男" ]
}, {
  "name" : "李小四",
  "age" : 28,
  "genders" : [ "女" ]
}, {
  "name" : "王小五",
  "age" : 38,
  "genders" : [ "男", "女" ]
} ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值