html 代码
- <table>
- <tr class="ct-ruleValue">
- <td class="T-TdRight">姓名:</td>
- <td>
- <input id="txtName" type="text" size="20" />
- </td>
- </tr><tr class="ct-ruleValue">
- <td class="T-TdRight">证件:</td>
- <td>
- <input id="txtIdentityID" type="text" size="20" />
- </td>
- </tr><tr class="ct-ruleValue">
- <td class="T-TdRight">性别:</td>
- <td>
- <select id="txtSex" >
- <option value="男">男</option>
- <option value="女">女</option>
- </select>
- </td>
- </table>
- <div class="c-ruleSetBtn">
- <input type="button" value="保存" onclick="add();" />
- <input type="submit" value="保存&提交"
- onclick="addExit();" />
- </div>
javascript 采用mootools 组合json数据 页面需要引用 mootools.js 1.2
- var arr = new Array();
- var str="";
- //注意$() 等于document.getEmelentById()
- function add() {
- str = { "identityID": $("txtIdentityID").value, "name": $("txtName").value, "gender": $("txtSex").selectedIndex
- };
- //每点击一次 添加 组合一个放在数组中
- arr.push(str);
- }
- }
- function addExit() {
- //提交代码 把多个组合的json 放在了隐藏域保单的属性中
- if (str != "") {
- //mootools 提供的json转换 方法
- $("txtAllValue").value = JSON.encode(arr);
- }
- }
后台代码 对象的属性要和json的属性名称相对应
- public class BuilderRec implements java.io.Serializable{
- private String name;
- private String identityID;
- private String gender;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getIdentityID() {
- return identityID;
- }
- public void setIdentityID(String identityID) {
- this.identityID = identityID;
- }
- public String getGender() {
- return gender;
- }
- public void setGender(String gender) {
- this.gender = gender;
- }
- }
java 转换 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-2.2.2-jdk15.jar
- List<BuilderRec> builderRecs = new ArrayList<BuilderRec>();
- String str = request.getParameter("txtAllValue");
- if (str != null && !"".equals(str))
- list = getList(str,new Person());
- //转换成对应的类对象
- for(BuilderRec p : list)
- builderRecService.insert(p);
- //下面是封装的方法
- public <T> List<T> getList(String str,T t){
- JSONArray array = JSONArray.fromObject(str);//将str转换成json对象
- JsonConfig jsonConfig = new JsonConfig();//参数设置
- jsonConfig.setRootClass(t.getClass());//设置array中的对象类型
- List<T> list = (List<T>)JSONArray.toCollection(array, jsonConfig);//将数组转换成T类型的集合
- return list;
- }
.net也差不多
- System.Runtime.Serialization.Json.DataContractJsonSerializer ser =
- new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(List<BuilderRec>));
- List<BuilderRec> list =
- (List<BuilderRec>)ser.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(txtAllValue.Value)));
- foreach (BuilderRec p in list)
- {
- 可以获取了 p.name;p.identityID; 方式
- }