您的位置:首页 > Web前端 > JavaScript

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

2012-03-22 13:51 441 查看
如: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();

}

}
     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐