jackson依赖的jar包 对json的使用

一个新项目需要用到jackson,就从另一个项目拷贝jackson的jar包,开始只是拷贝了几个名称包括jackson的jar包(原项目jar包非常多),发现编译没错误,但运行时报无法找到这个类那个类等等。现将所有依赖的jackson的jar列出来,以备后用。

 

具体包共享在百度圆盘上:http://pan.baidu.com/s/1c0LKdxe

 

Jackson包对json的使用?

    首先需要导入jackson包,本文是对其基本对使用,能满足开发中很大一部分对需求,主要介绍的是:json,对象,map之间对转换。

1. Children类

package start.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @description:
 * @author: 程志祥<15610554031@163.com>
 * @date: 2018/1/24 下午5:49
 * @version: V1.0
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Children {

    private String id;
    private String cname;
    private int num;
}
2. User类
package start.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @description:
 * @author: 程志祥<15610554031@163.com>
 * @date: 2018/1/24 下午5:45
 * @version: V1.0
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private String name;
    private String id;
    private int age;
    private Date date;

    private Children children;
    private List list;
    private Set set;
    private Map map;

}
3. JsonTest测试类
package start.entity;

import org.codehaus.jackson.map.ObjectMapper;

import java.io.IOException;
import java.util.*;

/**
 * @description:
 * @author: 程志祥<15610554031@163.com>
 * @date: 2018/1/24 下午5:51
 * @version: V1.0
 */

public class JsonTest {
    public static void main(String[] args) throws IOException {

        // Children对象
        Children children = Children.builder()
                            .id("1")
                            .cname("children01")
                            .num(1)
                            .build();
        List<String> list = new ArrayList<>(5);
        list.add("list01");
        list.add("list02");
        list.add("list03");

        Set<String> set = new HashSet<>(5);
        set.add("set01");
        set.add("set02");
        set.add("set03");

        Map<Object, Object> map = new HashMap<>(5);
        map.put("1","map01");
        map.put("2","map02");
        map.put("3","map03");

        // User对象
        User user = User.builder()
                    .id("1")
                    .name("user01")
                    .age(1)
                    .date(new Date())
                    .children(children)
                    .list(list)
                    .set(set)
                    .map(map)
                    .build();

        //  jackson 的转换器
        ObjectMapper objectMapper = new ObjectMapper();

        // 1. 对象 -> json
        String json = objectMapper.writeValueAsString(user);
        System.out.println(json);
        /**
         {"name":"user01","id":"1","age":1,"date":1516788284382
         ,"children":{"id":"1","cname":"children01","num":1}
         ,"list":["list01","list02","list03"]
         ,"set":["set02","set03","set01"]
         ,"map":{"1":"map01","2":"map02","3":"map03"}}

         注意:  (1). 日期--长整形
                (2). List、Set会转成数组
         */
        // 2. json-> Map
        Map<Object,Object> map1 =objectMapper.readValue(json, Map.class);
        System.out.println(map1.get("id").getClass().getName());
        System.out.println(map1.get("name").getClass().getName());
        System.out.println(map1.get("date").getClass().getName());
        System.out.println(map1.get("list").getClass().getName());
        System.out.println(map1.get("set").getClass().getName());
        System.out.println(map1.get("map").getClass().getName());
        System.out.println(map1.get("children").getClass().getName());
        /**
         *
         java.lang.String
         java.lang.String
         java.lang.Long
         java.util.ArrayList
         java.util.ArrayList
         java.util.LinkedHashMap
         java.util.LinkedHashMap

         注意: (1). 日期--长整型
               (2). map、子对象 均转换成了LinkedHashMap
               (3). List、Set会转成ArrayList
         *
         */
        // 3. Map -> json
        json = objectMapper.writeValueAsString(map1);
        System.out.println(json);
        /**
         {"name":"user01","id":"1","age":1,"date":1516845608920
         ,"children":{"id":"1","cname":"children01","num":1}
         ,"list":["list01","list02","list03"]
         ,"set":["set02","set03","set01"]
         ,"map":{"1":"map01","2":"map02","3":"map03"}}

         注意: 跟对象->json一样
         *
         */

        // 4. json -> 对象
        User user1 =objectMapper.readValue(json, User.class);
        System.out.println(user1.getAge());
        System.out.println(user1.getChildren().toString());
        System.out.println(user1.getList().toString());
        System.out.println(user1.getSet().toString());
        System.out.println(user1.getMap().toString());
        /**
         1
         Children(id=1, cname=children01, num=1)
         [list01, list02, list03]
         [set02, set03, set01]
         {1=map01, 2=map02, 3=map03}

         注意: 跟原始对象一样
         *
         */
--------------------- 
作者:After_five_years 
来源:CSDN 
原文:https://blog.csdn.net/czx1204/article/details/79158248 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值