可以这样,使用JS数组存家庭成员信息,ajax传递参数的时候,将数组序列化成JSON字符串,后台接收JSON字符串,再反序列化成泛型集合
现在也是json数组传递的,只是多条数据在一个json数组里面,{"name":"张三","sex":男,"name":"李四","sex":女,},而不是 [{ "name":"张三","sex":男, },{ "name":"李四","sex":女, },] 这样的格式,后台接收json 字符串没法序列化成list
@代码小六: 怎么可能无法序列化.....JSON格式对的话,序列化肯定是没问题的 检查下面两点 1.JSON格式 2.反序列化的方法
@七芯海棠: 你看我的格式呀,是两条数据,但是js 生成的json 是在一个里面的,不是list那种格式,所以无法格式化
@代码小六:
$(function () { var arr = new Array(); var info = { name: "", sex:"" } info.name = "张三"; info.sex = "男"; arr.push(info); info.name = "李四"; info.sex = "女"; arr.push(info); console.log(JSON.stringify(arr)); //输出:[{"name":"李四","sex":"女"},{"name":"李四","sex":"女"}] });
写了一个小demo,参考一下 我在浏览器测试了,输出结果就是注释的那段字符串,你把这个作为参数传到后台应该就能解析了
@七芯海棠: 这样写当然可以,但是我是获取的页面的表单元素,
页面上是动态生成的输入框,点击一下,生成一个,比如第一个生成的id是family[0].FamilyName,第二次是family[1].FamilyName,第三次是family[2].FamilyName,最后form表单获取所有的元素,提交,生成的json 就不是上面你说的那种形式了
@代码小六: 能不用表单就不用撒 表单能实现的效果 ajax异步一样能实现
@七芯海棠: 说的对
主要问题还是json序列化的问题
返回json
合理设置你的表单元素的name属性。
重写json格式