本文實例分析了jQuery解析json數據的方法。分享給大家供大家參考,具體如下:
先來看看我們的Json數據格式:
[{id:01,name:"小白",old:29,sex:"男"},{id:02,name:"小藍",old:29,sex:"男"},{id:03,name:"小雅",old:29,sex:"男"}]
為了消除亂碼問題,我們設置一個過濾器(代碼片段)
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); chain.doFilter(req, resp);}
服務端我用Servlet生成json數據(代碼片段)。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); //過濾器已經做過編碼轉化了。 resp.setContentType("text/html;charset=UTF-8"); StringBuffer sb = new StringBuffer(); sb.append("[{id:01,name:/"小白/",old:29,sex:/"男/"},"); sb.append("{id:02,name:/"小藍/",old:29,sex:/"男/"},"); sb.append("{id:03,name:/"小雅/",old:29,sex:/"男/"}]"); out.print(sb);}
頁面端JQuery代碼:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>json學習</title> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <script type="text/javascript" src="jslib/jquery.js" charset="UTF-8"></script> <script type="text/javascript" charset="UTF-8"> $(document).ready(function() { var select = $("#select"); $.get("json.do", null, function(data) { var jsonData = eval(data);//接收到的數據轉化為JQuery對象,由JQuery為我們處理 $.each(jsonData, function(index, objVal) { //遍歷對象數組,index是數組的索引號,objVal是遍歷的一個對象。 //val["屬性"]可取到對應的屬性值。 $("<option>").attr("value", objVal["id"]).html(objVal["name"]).appendTo(select); }); }); }); </script></head><body><select id="select"></select></body></html>
之前為了省事,我層把json數據寫到json.txt,json.jsp中,不用Servlet封裝,可是后來我用Firebug調試了一下
寫到.jsp、.txt文件中的json數據,沒有被解析出來,Firebug中調試了一下,10行斷點下一步直接結束,
就沒有遍歷對象數組。于是分別測試了一下
文本文件 json.txt
jsp文件 json.jsp
Servlet json.do
返回的數據,瀏覽器只有解析出Servlet的返回的數據是json數據
希望本文所述對大家jQuery程序設計有所幫助。
新聞熱點
疑難解答