Ajax獲取Json多個集合並同時遍歷

Ajax獲取Json多個集合並同時遍歷:javascript

方法一.:將多個集合放入MAP集合。java

後臺:Servletajax

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        
NoteService nd
= new NoteServiceImpl();
// 如下設定3個集合:
// 查詢全部文檔全部字段內容 List<NoteBean> lnb = nd.queryAll(); // 提取每一個文檔內容中的第一個圖片地址的集合 List<String> imgSrcFirst = nd.contentImgFirst(); // 提取每一個文檔內容中的純文本內容的前101字節 List<String> ctTxtHundred = nd.contentTxtHundred();
//將多個集合放入MAP集合 Map map
= new HashMap(); map.put("image",imgSrcFirst); map.put("text",ctTxtHundred); map.put("list",lnb); JSONObject jo = JSONObject.fromObject(map); //向ajax中傳遞數據 resp.getWriter().write(jo.toString()); }

前臺:Jquery編程

$(function () {
    $.ajax({
        url: "noteListUser.do",
        type: "post",
        dataType: "json",
        success: function (data) {
            console.log("開始獲取數據....");

            //從map中取出集合
            var images=data.image;
            var lists=data.list;
            var  texts=data.text;
/*
            //分別遍歷:
            $.each(images, function (index, img) {
                console.log(img);
            })
            $.each(lists, function (index, list) {
                console.log(list.id);
            })
            $.each(texts, function (index, txt) {
               console.log(txt);
            })*/

            //同時遍歷,前提:所遍歷的多個集合的length一致
            for(var i=0;i<images.length;i++){
                console.log(images[i]+"++"+lists[i].id+"++"+texts[i]);
            }
        },
        error: function () {
            console.log("服務器調用失敗....");
        }
    })
});

方法二:方法一里的後臺多個集合放在了Map集合中,也能夠放到對象中,畢竟面向對象編程,可是太麻煩了,須要額外寫個bean:json

後臺:Servlet服務器

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        
NoteService nd = new NoteServiceImpl();
//如下設定3個集合 // 查詢全部文檔全部字段內容 List<NoteBean> lnb = nd.queryAll(); // 提取每一個文檔內容中的第一個圖片地址的集合 List<String> imgSrcFirst = nd.contentImgFirst(); // 提取每一個文檔內容中的純文本內容的前101字節 List<String> ctTxtHundred = nd.contentTxtHundred();
//將多個集合放入TestBean對象 TestBean tb=new TestBean(); tb.setImg(imgSrcFirst); tb.setList(lnb); tb.setTxt(ctTxtHundred); JSONObject jo = JSONObject.fromObject(tb); //向ajax中傳遞數據 resp.getWriter().write(jo.toString()); }

前臺:Jqueryide

$(function () {
    $.ajax({
        url: "noteListUser.do",
        type: "post",
        dataType: "json",
        success: function (data) {
            console.log("開始獲取數據....");

            var test=data;
            //同時遍歷,前提:所遍歷的多個對象的length一致
            for(var i=0;i<test.img.length;i++){
                console.log(test.img[i]+"++"+test.list[i].id+"++"+test.txt[i]);
            }
        },
        error: function () {
            console.log("服務器調用失敗....");
        }
    })
});

 

注:以上兩種方法已測試經過..post

相關文章
相關標籤/搜索