不要被这个世界改变!|

原生的 jquery form回写json数组的实例代码

这本来是个分享的,但插件不好使了,等有时间在搞一个
 
						一:jsp中
  
 //更新时获得数据信息
             var url = "<%=request.getContextPath()%>/BudgetMaintainAction.do?cmd=getUpdateBudgetMaintainBean&budgetinfoId="+budgetinfoId+"&contractinfo_id_update="+contractinfo_id_update+"&rand="+Math.random();
                     $.ajax({
                          url: url,
                          type: 'GET',
                          dataType: 'json',
                          timeout: 100000,
                          async: false,
                          error: function(){
                             alert('获得数据失败!');
                          },
                          success: function(jsonText){
                              //合同信息回写
                               jsonArrayWriteToForm(jsonText);//回写预算中的信息
                          }
                     });
        }
//核心方法:form为form对象(暂时只支持1个)
//json回写到form
function jsonArrayWriteToForm(jsonText){
    if(!jsonText){
        return;
    }
     //获得对象精确类型
    this.__getClass = function(object){
        return Object.prototype.toString.call(object).match(/^\\[object\\s(.*)\\]$/)[1];
    };
     $.each(jsonText,function(i,item){
          for ( var p in item ){ 
             //构建回写的form字段
             //alert(p+"--"+item[p]);
             var objVal = item[p];
            var valType =  __getClass(objVal);
             //数组集合
            if(valType == 'Array'){
                $.each(objVal,function(j,arrayItem){
                    for ( var jp in arrayItem ){ 
                       alert("array--"+jp+"--"+arrayItem[jp]);
                    }
                });
            }else{
                //普通
                  if(form.elements[p]){
                   var typeInfo =  __getClass(form.elements[p].length);//Number时有多个对象
                     if(typeInfo == 'Number' && form.elements[p].length != 1){
                         //可能重名或checkbox
                         for(var i =0,j=form.elements[p].length ; i类型的对象
        TooolUtil.setTextAjax(jsonString, response);//jsonString为转换后的json数组集合
格式如:[{"id":"1212","name":"name1"},{"id":"22","name":"n2"}]
  
/**
     * ajax返回html,包括json形式
     * 
     * @param responseContent
     */
    public static void setTextAjax(String responseContent,IResponse response) {
        try{    //更新规则记录状态
            response.getServletResponse().setCharacterEncoding("GBK");
            //返回参数值到页面
            PrintWriter out = response.getServletResponse().getWriter();
            out.write(responseContent);
            out.flush();
            out.close();
        }catch (Exception e) {
            if(e instanceof BSException)throw (BSException)e;           
              throw new BSException("Ajax得到服务数据出错");
         }
    }
}
						//该余额宝领红包码来自于http://www.codesnippet.cn/detail/2408201715274.html