<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
        主站蜘蛛池模板: 精品97国产免费人成视频| 亚洲欧洲精品成人久久曰| 亚洲一区二区三区国产精品| 亚洲欧洲中文日韩av乱码| 国产AV无码专区亚洲精品| 亚洲精品无码久久毛片波多野吉衣| 亚洲午夜精品一区二区| 亚洲国产情侣一区二区三区| 亚洲日本VA午夜在线电影| 成全视频免费高清| 亚洲国产精品狼友中文久久久| 亚洲人成在线影院| 99在线免费观看视频| 午夜国产羞羞视频免费网站| 亚洲Av熟妇高潮30p| 免费无码AV一区二区| 免费人成视频在线观看网站| 亚洲精品福利网站| 大陆一级毛片免费视频观看| 亚洲处破女AV日韩精品| 91青青青国产在观免费影视| 亚洲精品无码专区久久同性男| 国产精品hd免费观看| 国产精品黄页在线播放免费| 久久久久久亚洲精品成人| 在线观看人成视频免费无遮挡| 麻豆国产精品入口免费观看| 亚洲宅男天堂a在线| 香港a毛片免费观看| 伊人久久大香线蕉亚洲| 亚洲av午夜电影在线观看| 国产精品永久免费10000| 亚洲中文字幕久久精品无码APP| 另类免费视频一区二区在线观看| 免费h成人黄漫画嘿咻破解版| 精品亚洲成A人无码成A在线观看| 全免费a级毛片免费看| 亚洲国产无套无码av电影| 久久不见久久见免费影院www日本| 亚洲国产精品自在在线观看| 真实乱视频国产免费观看|