环境:S2SH后台:
1、TestVo类
   里面有个属性:String testjson;2、Service层:用Jackson把一个list转化为String  赋给testjson;3、Action层:getter setter TestVo类 然后 return "指定页面"前台:
1、index.jsp页面,有个打开按钮进入如上的Action层方法中。2、指定页面如何接收这个testvo。我的做法:
1、直接通过${testvo.testjson},不过报错,后来我以为数据格式有问题,就把后台打印的数据直接复制到前台,正确。所以应该不是数据格式的问题吧(testvo这个是传过来的,其他属性都可以取到,list也可以取到)2、指定页面上用隐藏域接收${testvo.testjson},然后用取得这个隐藏域的值。这样虽然能取到值,不过这个相当于字符串赋值的,所以已经不是json格式了。各位帮帮忙吧,谢谢了

解决方案 »

  1.   

    用findbug检查一下,看看后台返回的是不是你需要的json格式。在后台的代码不靠谱。
      

  2.   


    前台alert打印出的完全一样。
    比方说:
    var xx = [{"id":1,"name":"aa"},{"id":2,"name":"bb"}];
    打印出的是json格式的,可以取到相应的属性
    假如你赋值给隐藏域(隐藏域id为jsonh)的话
    var yy = $("#jsonh");(这里的$("#jsonh").val()值和xx完全一样,alert测试过)
    alert出的是字符串而不是Json格式了,取不到相应的属性
      

  3.   

    我想要的效果是:前台接收这个json,然后给table赋值。然后可以修改它,然后这个json也跟着变了,最后把这个Json作为参数传到后台。
      

  4.   


    <script type="text/javascript">var a = '[{"id":1,"name":"aa"},{"id":2,"name":"bb"}]';
    var b = eval(a);
    document.write(b)
    document.write("<br />")
    document.write(b[0].id)
    document.write("<br />")</script>
    是你想要的结果吗?
      

  5.   


    action傳到前台的本身就是json格式的字符串,需要js處理一下即可。
      

  6.   

    你可以考虑使用ajax的方式请求,可以指定数据的返回方式为json
      

  7.   

    不懂你说的什么,样虽然能取到值,不过这个相当于字符串赋值的,所以已经不是json格式了。
    json不就是字符串?
    我还真没看明白