关于spring mvc返回json数据
2015-11-15 22:17
387 查看
一。过滤某个对象的属性转换为json对象.
如.不想将密码返回给客户端,则在对应字段上使用 @JsonIgnore 注解或在对应类上使用
p.s.前提.spring mvc版本必须是4.x
如果,某个场景需要将xx字段序列化为json,某个场景又不需要序列化xx字段到json字符串呢?那么使用如下方式配置
二。对返回的json字符串的属性值进行格式化
1.自定义一个格式化的类,实现如何对感兴趣的字段进行格式化
2.在要进行格式化的字段上标注 @JsonSerialize,并指定要使用的格式化类对象
如.不想将密码返回给客户端,则在对应字段上使用 @JsonIgnore 注解或在对应类上使用
@JsonIgnoreProperties注解
p.s.前提.spring mvc版本必须是4.x
public class User { private String username; @JsonIgnore private String password; @JsonIgnore private Date createDate; //... } @JsonIgnoreProperties({"password", "createDate"}) public class User { private String username; private String password; private Date createDate; //... }
如果,某个场景需要将xx字段序列化为json,某个场景又不需要序列化xx字段到json字符串呢?那么使用如下方式配置
public class User { public interface WithoutPasswordView {}; public interface WithoutCreateDateView {}; @JsonView(WithoutPasswordView.class) @JsonView(WithoutCreateDateView.class) private String username; @JsonView(WithoutCreateDateView.class) private String password; @JsonView(WithoutPasswordView.class) private Date createDate; //... }
@RequestMapping(value = "/user", method = RequestMethod.GET) @JsonView(User.WithoutPasswordView.class) public User getUser() { return new User("eric", "7!jd#h23"); }
二。对返回的json字符串的属性值进行格式化
1.自定义一个格式化的类,实现如何对感兴趣的字段进行格式化
import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializerProvider; /** * 日期类型格式化,格式化为:yyyy-MM-dd 格式 */ public class DateJsonSerializer extends JsonSerializer<Date> { @Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = formatter.format(value); jgen.writeString(formattedDate); } }
2.在要进行格式化的字段上标注 @JsonSerialize,并指定要使用的格式化类对象
@JsonSerialize(using=DateJsonSerializer.class) @Column(name="BIRTHDAY") public Date getBirthday() { return birthday; }
相关文章推荐
- java大数处理
- java异步编程
- struts2 的框架的特点
- Java学习小结(上)
- 去除程序中的中文注释
- Java面向对象编程-第7章学习笔记
- Eclipse中10个最有用的快捷键组合
- 二维数组的排序
- Java中类与类、类与接口、接口与接口的关系
- 10 2048
- java5、java6、java7、java8的新特性
- org.eclipse.equinox.internal.p2.engine.phases.CheckTrust phase问题
- 第一次spring冲刺第3、4天
- 在Ubuntu上,使用SWT嵌入AWT/SWING代码导致Eclipse崩溃问题
- eclipse编辑器生命周期事件监听
- JAVA学习笔记-Semaphore和CountDownLatch实例
- JAVA IO流详解
- Eclipse Action与Command的区别
- JAVA异常
- [置顶] Java基础知识总结(三)——类和接口