首先要导入所需要的jar,使用maven方式管理jar包
<!-- 配置接口返回数据json --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.7.3</version> </dependency>
在spring-mvc的配置文件中增加两个bean
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <!--json视图拦截器,读取到@ResponseBody的时候去配置它--> <ref bean="jsonHttpMessageConverter"/> </list> </property> </bean> <!--json转化器,它可以将结果转化--> <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean>
在controller中配置返回视图模式
@RequestMapping("test") @ResponseBody public Map<String, Object> test(String id) { Map<String, Object> map = new HashMap<>(); String name = cityService.getCityName(id); System.out.println(name); if (name != null) { map.put("result", name); } else { map.put("result", "查询失败"); } return map; }
亲测有效,如果无效的话,肯定是别的地方配置错误了,此方法绝对有效!!!