jackson封装成将数据转化为json格式的工具类(包括时间)

首先要引入jackson依赖

      <!--        json解析工具-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.10.2</version>
        </dependency>

如果是maven构建的web工程的话,要将该依赖加入到lib包下面,否则运行时会出错(不知道的看这个

然后在springmvc的配置文件中配置解决乱码问题的代码

    <!--解决json 乱码配置-->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8"/>
            </bean>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                    <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                        <property name="failOnEmptyBeans" value="false"/>
                    </bean>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

然后复制下面封装好的工具类

public class JsonUtils {

    //重载
    public  static  String getJson(Object object) throws JsonProcessingException {
        return getJson(object,"yyyy-MM-dd HH:mm:ss");
    }


    //object为要转化为json格式的对象,dateFormat为要转化的日期格式如"yyyy-MM-dd HH:mm:ss"
    public static String getJson(Object object,String dateFormat) throws JsonProcessingException {
        //jackson中的转化json函数
        ObjectMapper mapper=new ObjectMapper();

        //不使用时间戳的方式
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
        //自定义日期的格式
        SimpleDateFormat sdf=new SimpleDateFormat(dateFormat);
        //将SimpleDateFormat转化后的日期格式定义为jackson的日期输出格式
        mapper.setDateFormat(sdf);
        //如果object不是时间类型的对象,则上面的设置不起作用,还是直接把Object对象转化为json串了
        return mapper.writeValueAsString(object);
    }
}

测试代码:

//@Controller会直接被视图解析器解析
//返回json字符串注解要@Controller和@ReponseBody一起使用,或者只使用@RestController注解也可以
@Controller
public class UserController {

    //调用JsonUtils工具类
    @RequestMapping("/j3")
    //该注解返回一个json字符串,不会走视图解析器
    @ResponseBody
    public String json3() throws JsonProcessingException {
        User user = new User("tanjiu", 13, "男");
        Date date = new Date();
        //三种方式调用工具类
//        return JsonUtils.getJson(user);
//          return JsonUtils.getJson(date,"yyyy-MM-dd HH:mm:ss");
        return JsonUtils.getJson(date);
    }

}

测试结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值