与springMVC项目集成
1. 将jar包引入工程。
2. 在*-servlet.xml配置文件中将jackson转换器加入转换器列表。
<mvc:annotation-driven>
<mvc:message-converters>
<beanid="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<propertyname="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
3. 在需要返回json数据的controller接口上加上@ResponseBody注解,比如:
@RequestMapping("page")
@ResponseBody
publicPagedMessage page(HttpServletRequest request, HttpServletResponse response,Integer p, String device_token) {
……省略……
returnpagedMessage;
}
如果想把某个domain以json格式返回给客户端,但是只希望展示其中某些字段。该怎么办呢?必须要重新定义一个dto对象吗?答案是可以不用。直接在domain不需要输出的字段上加上@JsonIgnore注解就可以了,比如:
@JsonIgnore
private Integer isDeleted;
如果想在后端直接拿到转换后的json字符串,而不是希望转换器在返回过程中转换,可以通过如下的方式:
List<Picture> pictures =articleService.getPicturesOfArticle(id);
ObjectMapper mapper = new ObjectMapper();
String jsonPictures =mapper.writeValueAsString(pictures);