一 . 通過 jackson 返回JSON數據
1. 引入JAR包
jackson-core-asl-1.9.13.jar
jackson-core-lgpl-1.9.13.jar
jackson-mapper-asl-1.9.13.jar
jackson-mapper-lgpl-1.9.13.jar
2. Spring配置文件添加
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> </list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> |
3. Controller裏面修改返回值類型
@RequestMapping(value = "{username}") public @ResponseBody User find(@PathVariable String username, Model model, HttpServletResponse response) { User u = users.get(username); return u; } |
二 . 通過 PrintWriter 輸出字符串返回JSON數據
@RequestMapping(value = "{username}") public void find2_1(@PathVariable String username, HttpServletResponse response) { Gson gson = new Gson(); User u = users.get(username); String us = gson.toJson(u); // 需要設置編碼格式,否則可能出現亂碼 response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); try { PrintWriter out = response.getWriter(); out.print(us); } catch (IOException e) { e.printStackTrace(); } } |