我看51cto讲spingmvc返回json数据是这么配置的 大家项目怎么配置的啊 <!–处理直接返回json格式字符串–> <!– 处理json –> <!– 启动Spring MVC的注解功能,完成请求和注解POJO的映射–> |
|
这是 51CTO视频里的配置 不知道大家项目怎么配置的啊 |
|
Spring这个是要配合jackson使用的~
由于之前用的都是json-lib,所以 |
|
谢谢指点 具体怎么封装啊 有源码吗 |
|
不是告诉你了吗 public void sendJson(HttpServletResponse response, String json) throws IOException { response.setContentType("application/json;charset=utf-8"); response.getWriter().write(json); } |
|
只要你在后台用流写出json格式的字串,前台是用ajax 发送的请求,
|
|
response.setContentType(“text/html;charset=utf-8”);
设置 这样就可以 了 |
|
貌似 response.setContentType(“application/json;charset=utf-8”); 这样也是可以
|
|
好的 我自己测试下 |
|
2楼的是正解
|
|
我们 项目是 response.setContentType(“application/json;charset=utf-8”);
|
|
你这配置貌似有问题啊 我这报错 |
|
好像不用配置配置文件吧..
加上json的jar包然后 写到浏览器就可以了啊 |
|
哥们 你们怎么用的啊 给个例子啊 |
|
直接把jackson-all-1.6.0.jar导进去然后 //把user以json形式返回 @RequestMapping(value = "/json", method = RequestMethod.POST) @ResponseBody public void showbyjson(String name, User user,HttpServletRequest request,HttpServletResponse response) throws Exception { //业务处理 String res = Jsonutil.beanToJson(user); response.setCharacterEncoding("UTF-8");//处理中文编码问题 response.getWriter().write(res); } |
|
Jsonutil.beanToJson 你这个方法怎么写的啊 能贴下源码吗 谢谢 |
|
public static String beanToJson(Object obj,Boolean createNew) throws Exception { try { ObjectMapper objectMapper = getMapperInstance(createNew); String json =objectMapper.writeValueAsString(obj); return json; } catch (Exception e) { throw new Exception(e.getMessage()); } } |
|
30分 |
package com.springmvc.others; import org.codehaus.jackson.map.ObjectMapper; import com.srpingmvc.entry.User; public class Jsonutil { private static ObjectMapper mapper; /** * 获取ObjectMapper实例 * @param createNew 方式:true,新实例;false,存在的mapper实例 * @return */ public static synchronized ObjectMapper getMapperInstance(boolean createNew) { if (createNew) { return new ObjectMapper(); } else if (mapper == null) { mapper = new ObjectMapper(); } return mapper; } /** * 将java对象转换成json字符串 * @param obj 准备转换的对象 * @return json字符串 * @throws Exception */ public static String beanToJson(Object obj) throws Exception { try { ObjectMapper objectMapper = getMapperInstance(false); String json =objectMapper.writeValueAsString(obj); return json; } catch (Exception e) { throw new Exception(e.getMessage()); } } /** * 将java对象转换成json字符串 * @param obj 准备转换的对象 * @param createNew ObjectMapper实例方式:true,新实例;false,存在的mapper实例 * @return json字符串 * @throws Exception */ public static String beanToJson(Object obj,Boolean createNew) throws Exception { try { ObjectMapper objectMapper = getMapperInstance(createNew); String json =objectMapper.writeValueAsString(obj); return json; } catch (Exception e) { throw new Exception(e.getMessage()); } } /** * 将json字符串转换成java对象 * @param json 准备转换的json字符串 * @param cls 准备转换的类 * @return * @throws Exception */ public static Object jsonToBean(String json, Class<?> cls) throws Exception { try { ObjectMapper objectMapper = getMapperInstance(false); Object vo = objectMapper.readValue(json, cls); return vo; } catch (Exception e) { throw new Exception(e.getMessage()); } } /** * 将json字符串转换成java对象 * @param json 准备转换的json字符串 * @param cls 准备转换的类 * @param createNew ObjectMapper实例方式:true,新实例;false,存在的mapper实例 * @return * @throws Exception */ public static Object jsonToBean(String json, Class<?> cls,Boolean createNew) throws Exception { try { ObjectMapper objectMapper = getMapperInstance(createNew); Object vo = objectMapper.readValue(json, cls); return vo; } catch (Exception e) { throw new Exception(e.getMessage()); } } public static void main(String[] args) throws Exception { User u = new User(); u.setName("ds"); u.setId(1); String re=beanToJson(u); System.out.println(re); } } |
求给分
|
|
谢谢 一定 给分啊 |
|
那是jackson自己的方法,你可以下载源代码看看 |
|
a)引入Jar,java对象和json对象可以通过注解相互转化
jackson-core-asl-1.9.13.jar jackson-mapper-asl-1.9.13.jar b)springmvc-servlet.xml文件配置注解支持 <mvc:annotation-driven/> c)使用注解 @RequestBody 将提交中的json数据自动封装到java对象中 注意@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。 @ResponseBody 将返回的java对象自动转换为json串
@Controller public class AjaxController { @Resource PersonService personService;
@RequestMapping(“/ajaxresponse.action”) @ResponseBody public List<Person> ajaxresponse(HttpServletRequest request){ List<Person> pList = personService.listAll();
return pList; }
@RequestMapping(“/ajaxrequest.action”) public void ajaxrequest(@RequestBody List<Person> persons) { System.out.println(persons.size()); } } |
|
public static String toJson(Object o) {
Gson gson = new GsonBuilder().registerTypeAdapter( Date.class, new DateSerializer()).create(); return gson.toJson(o); } 直接这样就可以了 |