博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
@JSONField和 @JsonFormat比较说明
阅读量:4181 次
发布时间:2019-05-26

本文共 3059 字,大约阅读时间需要 10 分钟。

@JSONField是阿里巴巴下fastjson下的,@JsonFormat是jackson下面的。

一、@JSONField的常用方式:

1.1、name的用法:

实体类:

package com.xiaobu.entity;import com.alibaba.fastjson.annotation.JSONField;import lombok.Data;import javax.persistence.*;import java.io.Serializable;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2018/12/4 19:00 * @description V1.0 */@Datapublic class Roles implements Serializable {    private static final long serialVersionUID = 5775171105018867238L;    @JSONField(name = "role_id")    @Column(name = "RoleId")    private Integer RoleId;    @JSONField(name = "role_desc")    @Column(name = "RoleDesc")    private String RoleDesc;}

测试类:

/**     * @author xiaobu     * @date 2018/12/5 16:53     * @descprition  表明  json不区分大小写都能转换     * @version 1.0     * bean to JSON:{"role_desc":"admin","role_id":8}     * 需要转换的json:{"ROLE_DESC":"ADMIN","ROLE_ID":8}     * RoleDesc:ADMIN     */    @Test    public void testJSONField(){        Roles roles = new Roles();        roles.setRoleDesc("admin");        roles.setRoleId(8);        String jsonStr=JSONObject.toJSONString(roles);        System.out.println("bean to JSON:"+jsonStr);        //改变json的key为大写        jsonStr = jsonStr.toUpperCase();        System.out.println("需要转换的json:" + jsonStr);        roles = JSONObject.toJavaObject(JSONObject.parseObject(jsonStr), Roles.class);        System.out.println("RoleDesc:"+roles.getRoleDesc());    }

1.2  format的用法:

实体类:

/**     * 任务接收时间     */    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")    @JSONField(format = "yyyy-MM-dd")    @Column(name="TaskAcceptTime")    private Date TaskAcceptTime;    /**     *任务完成时间     */    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")    @JSONField(format = "yyyy-MM-dd")    @Column(name="TaskCompleteTime")    private Date TaskCompleteTime;

测试类:

@Test    public void findByExample() {        Task task = new Task();        task.setTaskId("HYR08274-0804");        Example example = new Example(Task.class);        Example.Criteria criteria = example.createCriteria();        if (StringUtils.isNotBlank(task.getTaskId())) {            criteria.andLike("TaskId", "%" + task.getTaskId() + "%");        }        //TaskAcceptTime=Mon Aug 04 00:00:00 CST 2008,TaskCompleteTime=Fri Nov 07 00:00:00 CST 2008        List
tasks = taskMapper.selectByExample(example); System.out.println(tasks); //""taskAcceptTime":"2008-08-04","taskCompleteTime":"2008-11-07" String fastJsonStr = JSON.toJSONString(tasks); System.out.println("fastJsonStr = " + fastJsonStr); ObjectMapper MAPPER = new ObjectMapper(); try { //""TaskAcceptTime":"2008-08-04","TaskCompleteTime":"2008-11-07 00:00:00" String ujosn = MAPPER.writeValueAsString(tasks); System.out.println("ujosn = " + ujosn); } catch (JsonProcessingException e) { e.printStackTrace(); } }
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") 必须加上时区。
@JSONField(format = "yyyy-MM-dd")

这两个的作用都是格式化日期时间。且只能作用在日期时间上。


 补充:  前台传后台

    @DateTimeFormat(pattern="yyyy-MM-dd") 

转载地址:http://nygai.baihongyu.com/

你可能感兴趣的文章
AWS EC2如何从普通用户切换为root用户
查看>>
click方法不生效的
查看>>
mysql排行榜并列与不并列
查看>>
SpringBoot | Mybatis申明为Mapper文件
查看>>
JPA主键生成策略
查看>>
byte数组和InputStream的相互转换
查看>>
InputStream,InputStreamReader和Reader之间的区别与关系
查看>>
Java中System.arraycopy方法的使用
查看>>
tk.mybatis的使用记录
查看>>
遍历获取目录下的所有文件
查看>>
从指定服务器路径下载文件
查看>>
EasyExcel读取和写入java model数据
查看>>
《C编译原理》共享库的动态加载和静态加载
查看>>
《Android系统学习》第二章:如何制作OTA U盘升级包
查看>>
《Android系统学习》第五章:编译Android的JDK环境
查看>>
《C++特性》之引用类型
查看>>
fflush(stdin)在gcc编译器中不起作用?
查看>>
《Android系统学习》第九章:Android模拟器编译
查看>>
《Android系统学习》第十章:Android消息处理、消息循环和消息队列
查看>>
《Android系统学习》第十一章:Android应用程序Activity组件分析
查看>>