java jackson包_java json工具包Jackson的使用

官方的五分钟入门文档:

国内某位同仁的翻译版(算是翻译版吧)

除了这些简单的应用外,有时还会遇到一些比较特殊的场景

pojo的字段名与实际的属性名不一样

某些属性不需要作json转换

字段以指定的顺序显示

日期类型按指定的格式转化

举例:

pojo的字段名与实际的属性名不一样

比如以下实体

public class User {

private String username;

private String nickName;

//真实姓名

private String fullName;

.....

}

但要求转化后的json字符串是这样的:

{"username":"xxx", "nickName":"xxxx", "realName":"xxxx"}

其中真实姓名这个字段在实体中是叫fullNam,但要求转后显示:realName

解决方式:

使用Jackson的注解即可:

public class User {

private String username;

private String nickName;

//真实姓名

@JsonProperty("realName")

private String fullName;

.....

}

2. 某些属性不需要作json转换

比如以下实体

public class User {

private String username;

private String nickName;

//真实姓名

private String fullName;

.....

}

但要求转化后的json字符串是这样的:

{"username":"xxx", "realName":"xxxx"}

其中nickName这个字段要求不要转换成json

解决方式:

使用Jackson的注解即可:

public class User {

private String username;

@JsonIgnore

private String nickName;

//真实姓名

@JsonProperty("realName")

private String fullName;

.....

}

3.字段以指定的顺序显示

比如以下实体

public class User {

private String username;

private String nickName;

//真实姓名

private String fullName;

.....

}

但要求转化后的json字符串是这样的:

{"fullName":"xxxx","username":"xxx", "nickName":"xxxx"}

字段显示的顺序为:fullName,username,nickName

解决方式:

使用Jackson的注解即可:

//调转顺序

@JsonPropertyOrder({ "fullName", "username", "nickName" })

public class User {

private String username;

@JsonIgnore

private String nickName;

//真实姓名

@JsonProperty("realName")

private String fullName;

.....

}

4.日期类型按指定的格式转化

比如以下实体

public static class DateBean {

public Date startDate;

public Date endDate;

}

但要求转化后的json字符串是这样的:

{"startDate":"yyyy-MM-dd HH:mm:ss","endDate":"yyyy-MM-dd HH:mm:ss"}

解决方式:

使用Jackson的注解即可:

public static class DateBean {

//按annotation中的日期格式存储。

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")

public Date startDate;

//按annotation中的日期格式存储。

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")

public Date endDate;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值