var marges = [
                { rowIndex: 0, columnIndex: 1, rowSpan: 2, colSpan: 1 },
                { rowIndex: 1, columnIndex: 1, rowSpan: 2, colSpan: 1 },
                { rowIndex: 2, columnIndex: 1, rowSpan: 2, colSpan: 1 },
                { rowIndex: 3, columnIndex: 1, rowSpan: 2, colSpan: 1 }
            ];        grid.margeCells(marges);
我需要改写别人的项目,前台有这样一段代码。首先marges这是什么,是数组?还是是对象?因为这么写前台是写死的,我现在需要后台动态生成,然后在传递到前台(用string?json?)然后在赋值给var marges对象请问该怎么做比较好,用什么转换成marges并进行这样赋值,求代码

解决方案 »

  1.   

    这是JSON格式的数据,有些后台语言有方法可以直接调用生成JSON格式的数据的
      

  2.   

    marges是数组,只不过数组元素是对象
    json
      

  3.   

    那用json我怎样把他再转换成marges的数组呢?
      

  4.   

    一般后台语言有函数直接转换成json的. 
      

  5.   

    当然是数组了,只不过里面是对象。通过for循环就可以遍历出来js对象的。
      

  6.   

    后台写成这样: "[{ rowIndex: 0, columnIndex: 1, rowSpan: 2, colSpan: 1 },{ rowIndex: 1, columnIndex: 1, rowSpan: 2, colSpan: 1 },......]"
    传到前台前台获取字符串后可以用eval解析,当然如果觉得eval有安全隐患可以自己封装一下写一个转换函数var json="[{ rowIndex: 0, columnIndex: 1, rowSpan: 2, colSpan: 1 },{rowIndex:1,columnIndex: 1, rowSpan: 2, colSpan: 1 }]";
    var obj=eval(json);
      

  7.   


    这样写完然后再
            var marges = obj;        grid.margeCells(marges);
    这样么?
      

  8.   

    这是JSON数据!百度空间也包含这些数据。JSON类似于数组。【】定义的是数组{}定义的是对象。数组可以用Length来取得长度而对角只能用FOR来遍历。里面的数据都是“对象:值”这样的形式组成。用JSON以更方便的向前台网页传送数据。
      

  9.   

    定义一个类Marges  4个属性rowIndex,columnIndex,rowSpan,colSpan, 分别给get,set方法servlet中:
       response.setContentType("application/json;charset=utf-8");
       List list =new ArrayList();
       for(int i=0;i<4;i++){
          Marges marges= new Marges();
          marges.setRowIndex(i);
          ...
          ...  //分别set赋值
          list.add(marges);
        }    Gson gson = new Gson();
        PrintWriter out = response.getWriter();
        out.write(gson.toJson(list));
        out.flush();
        out.close();
    前端直接返回你要的json数组格式