环境: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、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格式了。各位帮帮忙吧,谢谢了
前台alert打印出的完全一样。
比方说:
var xx = [{"id":1,"name":"aa"},{"id":2,"name":"bb"}];
打印出的是json格式的,可以取到相应的属性
假如你赋值给隐藏域(隐藏域id为jsonh)的话
var yy = $("#jsonh");(这里的$("#jsonh").val()值和xx完全一样,alert测试过)
alert出的是字符串而不是Json格式了,取不到相应的属性
<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>
是你想要的结果吗?
action傳到前台的本身就是json格式的字符串,需要js處理一下即可。
json不就是字符串?
我还真没看明白