js數(shù)組轉(zhuǎn)json并在后臺(tái)對(duì)其解析具體實(shí)現(xiàn)
想必大家在開(kāi)發(fā)過(guò)程中也遇到類(lèi)似問(wèn)題,如果直接將js獲取的數(shù)組傳給后臺(tái),后臺(tái)是無(wú)法區(qū)分?jǐn)?shù)組的,因?yàn)閖s數(shù)組如果是二維的就是這樣的:1,張三,23,2,李四,26
所以在此對(duì)其解決方法進(jìn)行整理。希望能給大家?guī)椭?/P>
首先需要在js里面對(duì)數(shù)組進(jìn)行轉(zhuǎn)換為json格式
js代碼如下:
/**
*js數(shù)組轉(zhuǎn)json
*
*/
function arrayToJson(o) {
var r = [];
if (typeof o == "string") return "/"" + o.replace(/([/'/"http://])/g, "http://$1").replace(/(/n)/g, "http://n").replace(/(/r)/g, "http://r").replace(/(/t)/g, "http://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后臺(tái)js該字符串后 對(duì)其進(jìn)行json轉(zhuǎn)換。
com.alibaba.fastjson.JSONArray mainArray=JSON.parseArray(info.getMainparame());
log.debug("數(shù)組大小:"+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代碼里面 不難看出,是經(jīng)過(guò)2次轉(zhuǎn)換。每次都是轉(zhuǎn)為JSONArray對(duì)象。
如果是一維數(shù)組就只轉(zhuǎn)換一次。
- 小議Function.apply()之二------利用Apply的參數(shù)數(shù)組化來(lái)提高 JavaScript程序性能
- 使用apply方法處理數(shù)組的三個(gè)技巧[譯]
- JS解析json數(shù)據(jù)并將json字符串轉(zhuǎn)化為數(shù)組的實(shí)現(xiàn)方法
- 解析javascript 數(shù)組以及json元素的添加刪除
- jquery遍歷篩選數(shù)組的幾種方法和遍歷解析json對(duì)象
- js/jquery解析json和數(shù)組格式的方法詳解
- 關(guān)于JS數(shù)組追加數(shù)組采用push.apply的問(wèn)題
- Jquery解析json字符串及json數(shù)組的方法
- 使用Function.apply()的參數(shù)數(shù)組化來(lái)提高 JavaScript程序性能的技巧
- Android解析json數(shù)組對(duì)象的方法及Apply和數(shù)組的三個(gè)技巧
相關(guān)文章
利用JS實(shí)現(xiàn)一個(gè)同Excel表現(xiàn)的智能填充算法
這篇文章主要給大家介紹了關(guān)于利用JS實(shí)現(xiàn)一個(gè)同Excel表現(xiàn)的智能填充算法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
深入理解JavaScript系列(27):設(shè)計(jì)模式之建造者模式詳解
這篇文章主要介紹了深入理解JavaScript系列(27):設(shè)計(jì)模式之建造者模式詳解,建造者模式可以將一個(gè)復(fù)雜對(duì)象的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示,需要的朋友可以參考下2015-03-03
使用window.prompt()實(shí)現(xiàn)彈出用戶(hù)輸入的對(duì)話(huà)框
window對(duì)象的最后一種對(duì)話(huà)框是提示對(duì)話(huà)框,它顯示了預(yù)先設(shè)置的信息并提供文本域供用戶(hù)輸入應(yīng)答。它包括兩個(gè)按鈕,即Cancel和Ok,允許用戶(hù)用兩個(gè)相反的期望值來(lái)關(guān)閉這個(gè)對(duì)話(huà)框:取消整個(gè)操作或接收輸入到對(duì)話(huà)框中的文本2015-04-04
基于JS+HTML實(shí)現(xiàn)彈窗提示是否確認(rèn)提交功能
這篇文章主要介紹了基于JS+HTML實(shí)現(xiàn)彈窗提示是否確認(rèn)提交功能,需要的朋友可以參考下2020-06-06
JavaScript實(shí)現(xiàn)瀑布流以及加載效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)瀑布流以及加載效果的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
基于JavaScript實(shí)現(xiàn)瀑布流布局(二)
這篇文章主要介紹了原生JavaScript實(shí)現(xiàn)瀑布流布局的相關(guān)資料,實(shí)現(xiàn)鼠標(biāo)下拉圖片自動(dòng)加載效果,和百度圖片效果類(lèi)似,需要的朋友可以參考下2016-01-01
Map與WeakMap類(lèi)型在JavaScript中的使用詳解
這篇文章主要介紹了Map與WeakMap類(lèi)型在JavaScript中的使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11

