【前台】首先,菜鸟是将要传到页面上的数据存成json格式(不管是用拼接的还是怎么处理的),例如下面这种格式:

   String data=[{"name":"name1","num":"num1","conclusion":"yes"},{"name":"name2","num":"num2","conclusion":"no"}]----->这里有两组数据

  然后页面会有接收数据的语句,以下说菜鸟遇到的方法:

  (1)通过页面提交到action然后再返回到页面的数据

例如:$.post(url,{id:id},function(result){}-------->通过叫具有独立标志的字段id传回action,使用id找到所需的json数据data,传回至参数result中

 1         $.post(url,{id:rowObj.id},function(result){
 2             var size=$(result).size();//可计算出json中有多少组数据
 3             if(size!=0){
 4                 for(var i=0;i<size;i++){
 5                     alert(result[i].name);//选取第i组数据中的指定字段
 6                     alert(result[i].num);
 7                     alert(result[i].conclusion);
 8                 }
 9             }
10         },'json');

既然指定的字段都出来了,那么我们就会了。(ps:在$.post的外面定义一个var去接收里面的数据,发现数据带不出来,不懂T-T)

  (2)如果直接在页面中就获取到了data字符串(没有再去action中获取一遍)

例如:var data=${data};-------->页面本身就可以取到这个值

 1           var data=${data};
 2           var c=eval("("+data+")");
 3        /* for (var i in c) {
 4             alert(i + "-" + c[i]);
 5           } */
 6           if(c.length>0){
 7              for(var k=0;k<c.length;k++){
 8          alert(c[k].name);
 9          alert(c[k].num);
10          alert(c[k].conclusion);
11               }
12           }       

  so,要的东西都出来了,我们可以继续往下做要做的了。

  以上两种方法,菜鸟觉得分别应该是一个传进来的本来就是json格式了,一个是要从字符串转成json格式,仅为个人观点。

  【后台】前台将拼接好的字符串存在data中

  $("data").val("[{\"name\":\"name1\",\"num\":\"num1\",\"conclusion\":\"yes\"},{\"name\":\"name2\",\"num\":\"num2\",\"conclusion\":\"no\"}]");----->这里有两组数据

  后台将其从前台取出来:

  String dataStr= Struts2Utils.getParameter("data");

  JSONArray dataJsonList=null;

  if(StringUtils.isNotEmpty(dataStr)){

    dataJsonList= JSONArray.fromObject(dataStr);

  }

   int len = dataJsonList.size();

  JSONObject dataJson = null;

  for(int i=0;i<len;i++){

    dataJson = dataJsonList.getJSONObject(i);

    String name= dataJson .getString("name");

    String num = dataJson .getString("num");

    String conclusion= dataJson .getString("conclusion");

  }

 

  获取json中的所有的key值http://blog.csdn.net/deng11342/article/details/7385131

  【双引号的替换】

  在转换Json格式,或者前台页面例如 input 的 value 的值要将双引号进行转义

  String s="18\\\"的鸟速";
  System.out.println("s="+s);
  String str=s.replaceAll("\\\\\"", "\"");-->java中//代表一个/,然后正则表达式中//转义成一个/,最后四个////代表一个/,有点忘了是不是这样解释的
  System.out.println("str="+str);
  String str2=str.replace("\"","\\\"");
  System.out.println("str2="+str2);

  输出结果为 

  s=18\"的鸟速
  str=18"的鸟速
  str2=18\"的鸟速

  

  在前台中

  var g = '${str2}';
  if(g.valueOf("\\\\\"")>=0){
    g.replace("\\\\\"","&quot");-->将前面已经转义成/"转换成"的html的转义字符
  }
  $("#str").val(g);

  警句:菜鸟用爪挖,看者需谨慎,切莫听一面之词,徒走曲折之路。

 

posted on 2013-12-14 17:54  菜鸟用爪挖  阅读(459)  评论(0编辑  收藏  举报