js數組轉json並在後台對其解析具體實現

來源:互聯網
上載者:User

想必大家在開發過程中也遇到類似問題,如果直接將js擷取的數組傳給後台,後台是無法區分數組的,因為js數組如果是二維的就是這樣的:1,張三,23,2,李四,26

所以在此對其解決方案進行整理。希望能給大家帶去協助

首先需要在js裡面對數組進行轉換為json格式

js代碼如下:

複製代碼 代碼如下:
/**
     *js數組轉json
     *
     */
    function arrayToJson(o) { 
    var r = []; 
    if (typeof o == "string") return "/"" + o.replace(/([/'/"//])/g, "//$1").replace(/(/n)/g, "//n").replace(/(/r)/g, "//r").replace(/(/t)/g, "//t") + "/""; 
    if (typeof o == "object") { 
    if (!o.sort) { 
    for (var i in o) 
    r.push(i + ":" + arrayToJson(o[i])); 
    if (!!document.all && !/^/n?function/s*toString/(/)/s*/{/n?/s*/[native code/]/n?/s*/}/n?/s*$/.test(o.toString)) { 
    r.push("toString:" + o.toString.toString()); 
    } 
    r = "{" + r.join() + "}"; 
    } else { 
    for (var i = 0; i < o.length; i++) { 
    r.push(arrayToJson(o[i])); 
    } 
    r = "[" + r.join() + "]"; 
    } 
    return r; 
    } 
    return o.toString(); 
    }

然後是在java後台js該字串後 對其進行json轉換。

複製代碼 代碼如下:
com.alibaba.fastjson.JSONArray mainArray=JSON.parseArray(info.getMainparame());
     log.debug("數組大小:"+mainArray.size());
       for(int i=0;i< mainArray.size();i++){
           QybjProduceParam p=new QybjProduceParam();
           com.alibaba.fastjson.JSONArray paramObject=(com.alibaba.fastjson.JSONArray)mainArray.get(i);
          p.setParamename(paramObject.get(1).toString());
          p.setParamevalue(paramObject.get(2).toString());

          params.add(p);
       }
       info.setParams(params);

大家從java代碼裡面 不難看出,是經過2次轉換。每次都是轉為JSONArray對象。

如果是一維數組就只轉換一次。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.