//@ResponseBody将服务器端返回对象转换为json对象响应回去
//produces指定响应体返回类型和编码
@RequestMapping(value="/json4",produces="application/json;charset=utf-8")
@ResponseBody//加了这个注解的方法返回字符串,而不是走视图解析器
public String json1() throws JsonProcessingException {
//需要一个jackjson的对象映射器。就是一个类,使用它可以直接将对象转换为json字符串
ObjectMapper objectMapper = new ObjectMapper();
//创建一个对象
User user = new User("温浩生", 24, "男");
System.out.println(user);
//将java对象转换为json字符串
String str = objectMapper.writeValueAsString(user);
return str;
//发现一个问题,返回到浏览器的字符串乱码,
// 我们需要设置一下他的编码格式为utf-8,以及它返回的类型。
// produces:指定响应体返回类型和编码
}
--------------------------------------------------------------------------------------------------------------or
springmvc-servlet.xml里面写
<mvc:default-servlet-handler/>
<!--通过Spring配置统一指定 设置响应体返回类型和编码-->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="failOnEmptyBeans" value="false"/>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>