<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        jquery ajax 向后臺傳遞數組參數示例

        來源:懂視網 責編:小采 時間:2020-11-27 22:52:21
        文檔

        jquery ajax 向后臺傳遞數組參數示例

        jquery ajax 向后臺傳遞數組參數示例:需求: 在JS中向后臺傳遞數組參數 分析: JS中的數組是弱類型的可以放任何類型(對象、基本類型),但是如果數組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下: 在后臺接收的時候,只能用request來接收,reque
        推薦度:
        導讀jquery ajax 向后臺傳遞數組參數示例:需求: 在JS中向后臺傳遞數組參數 分析: JS中的數組是弱類型的可以放任何類型(對象、基本類型),但是如果數組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下: 在后臺接收的時候,只能用request來接收,reque

        需求:
        在JS中向后臺傳遞數組參數

        分析:
        JS中的數組是弱類型的可以放任何類型(對象、基本類型),但是如果數組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下:
        在后臺接收的時候,只能用request來接收,request.getParameterValues()方法返回的是一個String[],所以,應該是在前臺傳輸的時候調用了對象的toString()方法,那么如果依然想傳遞對象怎么辦?涼拌!
        但是可以使用JSON字符串來實現,在后臺把JSON字符串解析成JAVA對象。

        也許,你要說如果是復合對象怎么辦,比如如下:
        代碼如下:


        public class Person {
        private String username;
        private String password;
        private Address addr;
        }

        Person對象里有個Address類型的addr屬性,沒關系,任何對象最終用到的屬性值都是基本數據類型,只需要使用對應的包裝類型parseInt、或者parseXXX解析即可。

        實現:
        OK,原理就是這么個。先看JS如何寫:
        代碼如下:


        var as = [];
        var temp = [];
        for ( var int = 0; int < 5; int++) {
        temp.push('{"k":');
        temp.push(int);
        temp.push(',"v":');
        temp.push(int);
        temp.push('}');
        as.push(temp.join(""));
        }
        //Jquery中的方法,具體參考Jquery API
        $.post(
        "servlet/AjaxServlet?m=putWarningRule",{"aa":as}
        );


        最終拼成的串就是如下樣式,(只作舉例)
        代碼如下:


        {"k":0,"v":0}

        后臺接收,不討論任何框架,只需要HttpServletRequest即可
        代碼如下:

        String[] jsonArr = request.getParameterValues("aa[]");

        有一點需要注意,在js中傳參的時候參數名叫"aa",而在后臺接收的時候卻是"aa[]",這里應該是Jquery做了轉換,所以最好的方式就是在JS中就改為"aa[]",之所以這里沒有寫"[]"是為了說明問題。可以使用如下方式打印request中的所有參數
        代碼如下:

        Enumeration<String> names = request.getParameterNames();
        while (names.hasMoreElements()) {
        String string = (String) names.nextElement();
        System.out.println(string);
        }

        OK,至此為止,已經接收完畢,剩下的就是如何將一個JSON字符串轉成一個POJO了。我使用jsontools-core-1.7.jar,此jar包依賴antlr-2.7.7.jar,自行到代碼庫中下載,下載完畢,導入classpath,寫一個簡單的工具類,主要有這么2個方法:
        代碼如下:

        /**
        * 將對象轉換為JSON格式的字符串
        * @param obj
        * @return 返回JSON字符串
        */
        public static String toJSONAsString(Object obj){
        try {
        return JSONMapper.toJSON(obj).render(false);
        } catch (MapperException e) {
        e.printStackTrace();
        }
        return null;
        }

        @SuppressWarnings("unchecked")
        public static <T> T jsonToObject(String jsonStr, Class<T> targetClass) throws TokenStreamException, RecognitionException, MapperException{
        JSONValue jv = new JSONParser(new StringReader(jsonStr)).nextValue();
        return (T) JSONMapper.toJava(jv,targetClass);
        }

        //test
        public static void main(String[] args) throws Exception {
        Person p = new Person();
        p.setK("a");
        p.setV("v");

        String json = toJSONAsString(p);
        Person np = jsonToObject(json,Person.class);
        System.out.println(np.getK()+"=="+np.getV());
        }

        request取到值后,遍歷數組,挨個轉換
        代碼如下:


        Person p = JSONUtils.jsonToObject(jsonArr[0], Person.class);

        Person類如下:
        代碼如下:

        public class Person {
        private String k;
        private String v;
        public String getK() {
        return k;
        }
        public void setK(String k) {
        this.k = k;
        }
        public String getV() {
        return v;
        }
        public void setV(String v) {
        this.v = v;
        }
        }

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        jquery ajax 向后臺傳遞數組參數示例

        jquery ajax 向后臺傳遞數組參數示例:需求: 在JS中向后臺傳遞數組參數 分析: JS中的數組是弱類型的可以放任何類型(對象、基本類型),但是如果數組中放的是對象類型,傳遞到后臺是顯示的只能是對象字符串--[object Object],原因如下: 在后臺接收的時候,只能用request來接收,reque
        推薦度:
        標簽: 參數 示例 ajax
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲狠狠爱综合影院婷婷| 日本免费人成黄页网观看视频| 国产乱辈通伦影片在线播放亚洲| 在线aⅴ亚洲中文字幕| A在线观看免费网站大全| 亚洲精品中文字幕无码AV| 91精品国产免费久久国语麻豆| 久久精品国产亚洲AV电影| 日本免费人成在线网站| 色天使亚洲综合在线观看| 日韩精品免费一区二区三区| 色屁屁www影院免费观看视频| 亚洲av无码不卡私人影院| 国产特黄特色的大片观看免费视频 | 日本在线看片免费| 亚洲美免无码中文字幕在线| 国产成人精品免费视| 亚洲欧美不卡高清在线| 亚洲国产精品国产自在在线| 中文字幕不卡免费视频| 久久国产亚洲精品无码| 日本免费无遮挡吸乳视频电影| v片免费在线观看| 91嫩草私人成人亚洲影院| 在线精品免费视频| 一级做a爰性色毛片免费| 亚洲成a人片在线观看无码| 波多野结衣在线免费视频| 色欲aⅴ亚洲情无码AV| 亚洲精品中文字幕无码蜜桃| 国产曰批免费视频播放免费s| 国产精品亚洲一区二区无码| 亚洲不卡av不卡一区二区| 99精品全国免费观看视频| 亚州**色毛片免费观看| 亚洲精品天天影视综合网| 女人被免费视频网站| 久久99精品免费一区二区| 亚洲综合成人婷婷五月网址| 亚洲精品制服丝袜四区| 日本一线a视频免费观看|