设为首页 加入收藏

TOP

如何定制对象中特定字段的JSON输出内容
2015-02-13 18:23:26 来源: 作者: 【 】 浏览:34
Tags:如何 定制 对象 特定 段的 JSON 输出 内容

引言: 在Web应用开发中,经常需要将对象转化为JSON字符串的过程中,会有默认的输出内容不符合要求的情况,比如DateTime。一般可以通过定制Serializer来实现定制化的JSON字符输出。


1.? 在对象中的getXXX方法中设置自定义的Serializer


public class MyObject {
? ? private DateTime startDate;
? ? ? @JsonSerialize(using = DateTimeJsonSerializer.class)
? ? ? public DateTime getStartDate(){
? ? ? ? ? return this.startDate;
? ? }
}


说明:


1. @JsonSerializer定义了自定义的序列号类,


2.? using中指定自定义的java转化类


2.? 实现自定义的Serializer


public class DateTimeJsonSerializer extends JsonSerializer {


? private static DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH-mm-ss");
?
?@Override
?public void serialize(DateTime value, JsonGenerator generator,
? ?SerializerProvider arg2) throws IOException,
? ?JsonProcessingException {
? generator.writeString(formatter.print(value));?
?}
}


在这个例子中,主要是针对DateTime进行JSON输出类型信息的转换。


DateTime在声明类型的时候,做通用类T来输入;在具体的方法中,做为value来传入。 generator.writeString()来输出JSON String信息。


3.? 进行测试


在未进行自定义格式化输出之前



在进行格式化输出之后:


如何定制对象中特定字段的JSON输出内容


4.? 总结


有了@JsonSerialize这个神器之后,就可以随心所欲的输出Json结果信息了。


--------------------------------------分割线 --------------------------------------


--------------------------------------分割线 --------------------------------------


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Matlab对文件夹的层次遍历和深度.. 下一篇Java IO多路复用技术简介

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: