9
我使用註解@JsonView,但它不起作用,這裏是我的代碼和返回數據,請你幫我看看我錯了什麼。JsonView不起作用
我的spring jar顯示了「spring-web-3.2.8.RELEASE.jar」的版本,我只是添加了這個bean,我不知道它是否有用,我直接使用@JsonView在我的代碼
<bean id = "jacksonMessageConverter" class = "org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
</bean>
這裏是View類
public class View {
public interface Summary{};
}
,這是用戶的實體類(「設置」「get」方法省略),它具有對應於數據庫中的幾個屬性, json數據中不需要返回「status」屬性。
public Class User{
@JsonView(View.Summary.class)
private Integer uid;
@JsonView(View.Summary.class)
private String first;
@JsonView(View.Summary.class)
private String last;
@JsonView(View.Summary.class)
private String email;
@JsonView(View.Summary.class)
private String password;
private Integer status;
}
我控制器
@RequestMapping(value="/login", method=RequestMethod.POST)
@JsonView(View.Summary.class)
@ResponseBody
public Message login(String email, String password){
User user = userMapper.findUser(email,password);
Message message = new Message();
message.setUser(user);
return message;
}
}
,這裏是我的「設置」「消息類get」方法
當我使用郵遞員來測試網址public class Message {
private int box_hits;
private List<Box> boxes;
@JsonView(View.Summary.class)
private User user;
}
,它顯示json數據,顯然,它不應該返回沒有@JsonView的屬性,我的代碼有什麼問題?
{
"box_hits": 0,
"boxes": null,
"user": {
"uid": 1,
"first": "yuan",
"last": "kang",
"email": "[email protected]",
"password": "123",
"status": 0
}
}
對於使用'@ JsonView'的Spring 4.2工作,請參見http://stackoverflow.com/questions/32299334/jacksons-jsonview-annotation-does-not-work#38777244 – GKislin