LinkedHashMap<String,String> 到前台不会变成json吧??? 而且 var array= new Array; var keyArray=new Array; for(var index in jsonString){ keyArray.push(index); array.push(json[index]); } var length=array.length; alert(length); 没发应
这不是标准的json格式,只能按一般的字符串处理var jsonString = "{xxxxxxxx/xxxxxxx/copy6554578856865.jpg=12.jpg,xxxxxxxx/xxxxxxx/copy56644578.jpg=11.jpg}"; var json = {}; jsonString.replace(/([^\{\}=,]+)\s*=\s*([^\{\}=,]+)/ig,function(_,a,b){json[a]=b}); for (var n in json) alert(n+" : "+json[n]);
为什么不在后台转成json格式呢,你在前台转太麻烦了。 后台得到Map数据一次遍历就可以了。 直接转成这种格式:"{\"data\":[ { \"jpg\":\"XXXXX.jpg\"}, { \"jpg\":\"XXXXX.jpg\"}, { \"jpg\":\"XXXXX.jpg\"} //.... }"如果你发送的是ajax异步请求 前端回调函数得到后直接使用eval函数转成object类型,就可以使用了。var data = eval("(" + data + ")"); alert(data.data.length);
而且
var array= new Array;
var keyArray=new Array;
for(var index in jsonString){
keyArray.push(index);
array.push(json[index]);
}
var length=array.length;
alert(length);
没发应
这样的串要去掉两端的花括号,先按逗号切割,再按等号切割。得到的全是图片名,不明白有什么意义
var json = {};
jsonString.replace(/([^\{\}=,]+)\s*=\s*([^\{\}=,]+)/ig,function(_,a,b){json[a]=b});
for (var n in json)
alert(n+" : "+json[n]);
后台得到Map数据一次遍历就可以了。
直接转成这种格式:"{\"data\":[
{ \"jpg\":\"XXXXX.jpg\"},
{ \"jpg\":\"XXXXX.jpg\"},
{ \"jpg\":\"XXXXX.jpg\"}
//....
}"如果你发送的是ajax异步请求
前端回调函数得到后直接使用eval函数转成object类型,就可以使用了。var data = eval("(" + data + ")");
alert(data.data.length);
比如:"{\"data1\":"a",\"data2\":"b"}";
返回一个String到前端
调用eval函数就可以了。