Json实现传值到后台代码实例

时间:2021-05-26

1.定义一个键值对对象

function ObjData(key,value){this.Key=key;this.Value=value;}

2.在点击表单的提交buttom的方法中:

var list=document.getElementById("myForm").getElementsByTagName("input");//查询form下的所有input标签var array=[]; //定义一个对象数据 存放每一个input的键值对(input中“name”为key,“value”为value) for(var i=0;i<list.length && list[i];i++) //对表单中所有的input进行遍历{ //判断不是空的 input,进行表单提交 if(list[i].value!="" || list[i].value!=null) { var key=list[i].name; var value=list[i].value; var s=new ObjData(key,value); //创建键值对象 array.push(s); //把对象放入对象数组中 }}

3.把数组转换成json字符串

var postData = JSON.stringify(array);

4.使用ajax提交数据

//get是通过地址栏传参数 $.ajax({ url :'<%=basePath%>sysparam/editForm.do?postData='+postData, cache : false, type : "get", datatype : "json", contentType : "application/json", data : {postData:postData}, success : function(data) { if(data=="1"){//根据后台返回值确定是否操作成功} } });

5.java后端使用request拿到json数据

String ds = request.getParameter("postData");JSONArray json=JSONArray.fromObject(ds); //使用net.sf.json.JSONObject对象来解析jsonJSONObject jsonOne;Map<String,Object> map=null;List<Map<String, Object>> listMap=new ArrayList<Map<String,Object>>(); for(int i=0;i<json.size();i++){map = new HashMap<String,Object>(); jsonOne = json.getJSONObject(i); map.put("key", (String) jsonOne.get("Key")); map.put("value", (String) jsonOne.get("Value")); //只保留不为空的 键值对 if( (String) jsonOne.get("Value")!=""&&!"".equals( (String) jsonOne.get("Value"))){ listMap.add(map); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章