js数组传值,提交时到后台用string接受数组形式字符串

来源:互联网 发布:知彼而知己网易博客 编辑:程序博客网 时间:2024/05/16 00:27
如:var json=new Array();
         for(var i = 0;i<2;i++){
      {
                   var js = {};
                   js.cjId=i;
json.push(js);
       }
var jsonString =  _ToJSON(json); //jsonString值得结果输出是{0},{1}
如果在java后台要接收 ,以对象形式的话如下
String json=request.getParameter("json");
JSONArray jsonArray = JSONArray.fromObject(json);
    List  sks = new ArrayList();
       Iterator it = jsonArray.iterator();
        while (it.hasNext()) {
      JSONObject jsonObject = JSONObject.fromObject(it.next());
      int t = jsonObject.getInt("cjId");//此处的cjId与传值过来的js里面的属性cjId必须是相同名字的
      sks.add(t);
     }
数组转换方法
function _ToJSON(o){
if(o == null)
return "null";
switch(o.constructor) {
case String:
var s = o; // .encodeURI();
if(s.indexOf("}")<0)s = '"' + s.replace(/(["\\])/g, '\\$1') + '"';
s = s.replace(/\n/g,"\\n");
s = s.replace(/\r/g,"\\r");
return s;
case Array:
var v = [];
for(var i=0; i<o.length; i++)
v.push(_ToJSON(o[i])) ;
if(v.length<=0)return "\"\"";
return "" + v.join(",") + "";
case Number:
return isFinite(o) ? o.toString() : _ToJSON(null);
case Boolean:
return o.toString();
case Date:
var d = new Object();
d.__type = "System.DateTime";
d.Year = o.getUTCFullYear();
d.Month = o.getUTCMonth() +1;
d.Day = o.getUTCDate();
d.Hour = o.getUTCHours();
d.Minute = o.getUTCMinutes();
d.Second = o.getUTCSeconds();
d.Millisecond = o.getUTCMilliseconds();
d.TimezoneOffset = o.getTimezoneOffset();
return _ToJSON(d);
default:
if(o["toJSON"] != null && typeof o["toJSON"] == "function")
return o.toJSON();
if(typeof o == "object") {
var v=[];
for(attr in o) {
if(typeof o[attr] != "function")
v.push('"' + attr + '": ' + _ToJSON(o[attr]));
}
if(v.length>0)
return "{" + v.join(",") + "}";
else
return "{}";       
}
alert(o.toString());
return o.toString();
}
}
     
原创粉丝点击