这节课讲怎么处理json数据以及怎么给前台传数据
要处理json数据,需要一个第三方json处理的jar包,目前主流的有gson,fastjson,jackson,我们用fastjson,jar包已经准备好了。
然后我的idea好像出了bug,需要在ProjectStructure里也引一下才能用...不知道你们有没有这个bug
JsonTest.java
package com.test; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.bean.User; import org.junit.Test; public class JsonTest { @Test public void testJson() { //可以看到fastjson是阿里出品的 //处理json无非两种,字符串转对象,对象转字符串 //用单元测试测吧 User user = new User("xiaoye","123456"); //对象转字符串 String jsonStr = JSON.toJSONString(user); System.out.println(jsonStr); //字符串转对象 //JSON.parse()得到的对象的类型是JSONObject Object jsonObj = JSON.parse(jsonStr); System.out.println("jsonObj: "); System.out.println(jsonObj.toString()); //这就是json对象和字符串之间的互转 } }
AjaxServlet.java:
package com.servlet; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.bean.User; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class AjaxServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //这里写怎么给前台返回json数据 User user = new User("xiaoye","123456"); String jsonString = JSON.toJSONString(user); PrintWriter writer = resp.getWriter(); writer.write(jsonString); //通过response.getWriter()后writer.write()即可给前台返回数据 } }
web.xml:
<servlet> <servlet-name>AjaxServlet</servlet-name> <servlet-class>com.servlet.AjaxServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AjaxServlet</servlet-name> <url-pattern>/ajax</url-pattern> </servlet-mapping>
ajax.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <script src="/jquery.js"></script> <script> $.ajax({ url:"/ajax", type:"get", success:function (data) { console.log(data); } }); </script> </body> </html>