js的一些小功能,json串元素无双引号出错,备忘下

如下是jquery.ajax()方法中比较全的参数。

function getCitys(value){
	$.ajax( {    
	    url:'paramHelpergetCitys.do',  
	    data:{"provinceId":value},   
	    type:'post',    
	    cache:false,    
	    dataType:'text',
	    complete: function(data) {  },
	    success:function(data) {
	    	var jsonData = eval("(" + data + ")");
	    	for(var key in jsonData){
	    		$('#cityId').append("<option value='"+key+"'>"+jsonData[key]+"</option>")
	    	}
	    },    
	    error : function(e) {
	    	 alert(e);
	    }    
	});  
}

因为某些时候可能会js返回结果可能会报错,使用这种方式比较容易排查。

当后台是Map<Integer,String>的对象转json时,如{1:上海,2:北京}。因为key没有双引号,转成json的话,会报错到前台。

此时可以使用,需要设置传递参数类型为text。强制转换为JSON。

var jsonData = eval("(" + data + ")");

通过下面的方式可以遍历json

    	for(var key in jsonData){
	    		$('#cityId').append("<option value='"+key+"'>"+jsonData[key]+"</option>")
	    	}


你可能感兴趣的:(js的一些小功能,json串元素无双引号出错,备忘下)