JQuery Form表單轉JSON(支持複雜數據版)

關於Form表單轉封裝JSON的網上又很多,但是目前沒找到可以封裝Object嵌套的,所以稍微修改了下

網上通常寫法:

$.fn.toJSON = function()    
	    {    
	       var o = {};    
	       var a = this.serializeArray();    
	       $.each(a, function() {    
	           if (o[this.name]) {    
	               if (!o[this.name].push) {    
	                   o[this.name] = [o[this.name]];    
	               }    
	               o[this.name].push(this.value || '');    
	           } else {    
	               o[this.name] = this.value || '';    
	           }    
	       });    
	       return o;    
	    };


修改後的寫法:


$.fn.toJSON = function()    
	    {    
	       var o = {};    
	       var a = this.serializeArray();    
	       $.each(a, function() {
	    	   var name = this.name;
	    	   var value = this.value;
	    	   var paths = this.name.split(".");
	    	   var len = paths.length;
	    	   var obj = o;
        	   $.each(paths,function(i,e){
        		   if(i == len-1){
        			   if (obj[e]) {    
        	               if (!obj[e].push) {    
        	            	   obj[e] = [obj[e]];    
        	               }    
        	               obj[e].push(value || '');    
        	           } else {    
        	        	   obj[e] = value || '';    
        	           }
        		   }else{
        			   if(!obj[e]){
        				   obj[e] = {};
        			   }
        		   }
        		   obj = o[e];
        	   });	            
	       });    
	       return o;    
	    };


下面是實例:


Form表單如下:

	<f:form id="form" commandName="manager" autocomplete="false">
		<div class="row">
			<f:input path="name" class="form-control" />
			<f:input path="zone.id" class="form-control" />
		</div>
	</f:form>


後臺JAVA對象是

public class User{

private String name;

private Zone zone;

.//..get / set

}

public class Zone {

private Long id;

// ...get / set

}



修改前轉換成JSON爲:

{'name':'aaa','zone.id':1}

這種格式後臺接收後zone是null


修改後JSON爲:

{'name':'aaa','zone':{'id':1}}


這樣後臺接收就沒有問題了,

有需要的可以借鑑


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章