1、常见的json jar包,及其优缺点(开发中可以一起使用)
json-lib 缺点:依赖第三方的包
jackson SpringMVC内置的json装换工具,依赖包较少 GSON 谷歌开源jar包,功能最强大,不依赖任何包 fastjson 阿里巴巴开源jar包,效率最高,不依赖任何报2、在需要返回的方法前面加上 @ResponseBody注解
1 @RequestMapping(value = "/user/userview.html", method = RequestMethod.POST) 2 @ResponseBody 3 public Object getUserById(@RequestParam String uid) { 4 String cjson = ""; 5 if (StringUtils.isNullOrEmpty(uid)) { 6 return "nodata"; 7 } else { 8 try { 9 User user = userService.getUserById(uid);10 cjson = JSON.toJSONString(user);11 } catch (Exception e) {12 e.printStackTrace();13 return "failed";14 }15 }16 return cjson;17 }
3、对日期格式的处理
[{"address":"北京海淀","age":5,"birthday":1338307200000,"createdBy":0,"gender":2,"id":19,"modifyBy":0,"phone":"13878907654","userCode":"admin","userName":"系统管理员","userType":1}]
在查看日期格式的内容时,我们发现日期格式不是我们想要的
解决办法1:
在对应实体类的日期加上注解:针对阿里巴巴的 fastjson---------------@JSONField(format="yyyy-MM-dd"),缺点是依赖性太强,强耦合
解决方法2:
配置视图解析图
在springMVC配置文件中配置
1 23 4 5 6 7 12 1314 2115
2016 1917 18
@RequestMapping(value = "/user/userview2", method = RequestMethod.GET) @ResponseBody public Object getUserById2(@RequestParam String uid) { User user = new User(); try { user = userService.getUserById(uid); } catch (Exception e) { e.printStackTrace(); } return user; }
访问路径:两种方式:(可以访问json、xml、html、xls....)
(1)、使用扩展名: http://localhost:8080/ShopSystem/user/userview2.json?uid=19
(2)、使用参数(favorParameter): http://localhost:8080/ShopSystem/user/userview2?uid=19&format=json
注:访问xml时需要在对应实体类配置注解 @XmlRootElement
页面输出: