在互联网项目中经常需要从服务器后端拿数据,然后展示给前端,比如手机端的安卓应用、IOS应用、微信小程序、H5页面等。前端从后端拿到的数据以特定的格式传送,最常用的是XML和JSON,其中又因JSON数据格式数据量小,解析速度快等优势,很多应用都使用JSON作为数据传递的格式。
JSON数据的格式很简单,比如data {id: 1, name: "json"},这样就是一个JSON数据,也是字符串组成的。
使用springMvc可以很容易地返回JSON数据。下面以一个简单的例子来作演示。
@RequestMapping(value = "/toJson", method = RequestMethod.GET) @ResponseBody public Object toJson(HttpServletRequest request, HttpServletResponse response) { try { List<Person> personList = personService.helpToDo(); request.setAttribute("personList", personList); return personList; } catch (Exception e) { e.printStackTrace(); } return null; }
这里在PersonController.java中加了一个@ResponseBody的注解,与之前的方法没什么不同。部署到Tomcat服务器,启动访问http://localhost/calculateWeb/toJson返回错误No converter found for return value of type: class java.util.ArrayList。这是因为JSON数据格式需要另外的jar包充当解析器,而spring和springMvc的类库中没有包含这种JSON解析器。这里我们加入jackson解析器,共三个jar包:jackson-annotations-2.8.0.jar、jackson-core-2.8.7.jar、jackson-databind-2.8.7.jar。下载地址http://central.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.8.7/jackson-annotations-2.8.7.jar, http://central.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.8.7/jackson-databind-2.8.7.jar, http://central.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7.jar。这里给出的下载地址是http://central.maven.org/maven2网站提供的,有需要其他的jar包也可以到这里找到。
把这三个jar包放入WEB-INF/lib文件夹中,重启Tomcat应用服务器,再访问http://localhost/calculateWeb/toJson就会返回一串JSON格式的数据:
{"id":1,"nation":"USA","hand":null,"head":null,"foot":null},{"id":1,"nation":"USA","hand":null,"head":null,"foot":null},{"id":1,"nation":"USA","hand":null,"head":null,"foot":null},
这样springMvc已经可以支持把Java对象解析成JSON数据了,在实际项目中开安小程序或安卓应用、IOS应用一般都知道怎么把这种JSON数据转为开发者想要的对象并展示这些数据,最终展示的结果就如在手机中看到的数据了。
Java视频教程