jackson简单使用,对象转换为JSON

本文详细介绍了如何使用Jackson库将Java对象转换为JSON格式,包括简单的Map转换、自定义对象转换以及复杂对象的转换,提供了丰富的代码示例。
package com.neo.jackson;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.*;

/**
 * 简单使用对象转换为JSON
 * 功能测试
 */
public class JacksonTest {
    public static void main(String[] args) {

        System.out.println("Map 转换为JSON");
        HashMap<Integer,String> hashMaps = new HashMap<>();

        hashMaps.put(1,"neo");
        hashMaps.put(2,"zhao");

        ObjectMapper mapper = new ObjectMapper();
        try {
            String json = mapper.writeValueAsString(hashMaps);
            System.out.println("转换为JSON : " + json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

        System.out.println("自定义对象转换为JSON");

        List<User> users = new ArrayList<>();

        for(int i = 0; i < 5 ; i++ ){
            User user = new User();
            user.no = i;
            user.name = "neo";
            users.add(user);
        }

        ObjectMapper mapper1 = new ObjectMapper();
        try {
            String json = mapper1.writeValueAsString(users);
            System.out.println(json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

        System.out.println("自定义对象较复杂转换为JSON");
        List<Company> companies = new ArrayList<>();
        for(int i = 0; i < 3; i++){
            Company company = new Company();

            company.setNo(i);

            Set<String> set = new HashSet();
            set.add("neo");
            set.add("zhao");
            company.setSet(set);

            List<String> list = new ArrayList<>();
            list.add("musk");
            list.add("kaiWen");
            list.add("Helen");
            company.setName(list);

            HashMap<Integer,String> map = new HashMap<>();
            map.put(22,"jack");
            map.put(33,"xingMing");
            company.setMaps(map);

            companies.add(company);
        }

        ObjectMapper mapper2 = new ObjectMapper();
        try {
            String json = mapper2.writeValueAsString(companies);
            System.out.println(json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }


    //将要转换为JSON字符串的对象定义
    private static class User{
        private Integer no;
        private String name;
        public Integer getNo() { return no; }
        public void setNo(Integer no) { this.no = no; }
        public String getName() { return name; }
        public void setName(String name) { this.name = name;}
    }

    //复杂对象
    private static class Company{
        private int no;
        private Set<String>  set;
        private List<String> name;
        private HashMap<Integer,String> maps;

        public int getNo() { return no; }
        public void setNo(int no) { this.no = no; }
        public Set getSet() { return set; }
        public void setSet(Set set) { this.set = set; }
        public List<String> getName() { return name; }
        public void setName(List<String> name) { this.name = name; }
        public HashMap<Integer, String> getMaps() { return maps; }
        public void setMaps(HashMap<Integer, String> maps) { this.maps = maps; }
    }
}

输出结果

Map 转换为JSON
转换为JSON : {"1":"neo","2":"zhao"}
自定义对象转换为JSON
[{"no":0,"name":"neo"},{"no":1,"name":"neo"},{"no":2,"name":"neo"},{"no":3,"name":"neo"},{"no":4,"name":"neo"}]
自定义对象较复杂转换为JSON
[{"no":0,"set":["zhao","neo"],"name":["musk","kaiWen","Helen"],"maps":{"33":"xingMing","22":"jack"}},{"no":1,"set":["zhao","neo"],"name":["musk","kaiWen","Helen"],"maps":{"33":"xingMing","22":"jack"}},{"no":2,"set":["zhao","neo"],"name":["musk","kaiWen","Helen"],"maps":{"33":"xingMing","22":"jack"}}]

 

maven

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.10</version>
        </dependency>

 

转载于:https://my.oschina.net/u/816457/blog/1581867

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值