<sx:div
    href="index/sectype?id=23"
    showLoadingText="true"
    loadingText="正在加载,请稍后"
    errorText="加载失败,请重试!"
    
 /> 
执行后显示为:
[{"bookses":[],"id":46,"name":"艺术理论","parent":23},{"bookses":[],"id":47,"name":"摄影","parent":23}]

解决方案 »

  1.   

    data = {"bookses":[],"id":46,"name":"艺术理论","parent":23},{"bookses":[],"id":47,"name":"摄影","parent":23}直接用data.bookses,data.id,data.name取值吧。。
      

  2.   

    var obj = eval(data.result);obj.bookses就可以访问了
      

  3.   

    var obj = eval(data.result);obj.bookses要用javascript解析吗,能给个示例吗?
      

  4.   

    关键是json字串会自动产生在<sx:div />所在的部分,现在想让该div显示的不是json字串,而是自己想要的值,比如列表显示所有name,不知道<sx:div />该怎么写,对象名.参数值的形式我也知道,只是不知道该写到哪里。在线等啊!
      

  5.   

     function f2(){
           var str = "[{'name':'zs','age':'20'},{'name':'we','age':'21'}]";
           var obj = eval(str); 
           alert(obj[0].name+' '+obj[0].age+' '+obj[1].name+' '+obj[1].age);
          }
      

  6.   

    你还是通过js 获得sx:div
    的值,通过innerHTML获得到[{"bookses":[],"id":46,"name":"艺术理论","parent":23},{"bookses":[],"id":47,"name":"摄影","parent":23}] ,然后function f2(){
           var str = "[{'name':'zs','age':'20'},{'name':'we','age':'21'}]";
           var obj = eval(str); 
           alert(obj[0].name+' '+obj[0].age+' '+obj[1].name+' '+obj[1].age);
          } 按照这种形式就可以拿到任何一个值,你再用JS的innerHTML赋值给sx:div
      

  7.   


    最后就是使用这个方法,onload时调用该js,只是存在一个问题,有时候<sx:div>还没有获取到内容,而js就开始读取它的内容,结果拿到的是空值。
      

  8.   

    因为js是顺序执行的,也就是说,如果查询结果没有返回完毕,你已经开始读取这个json时,自然就null了。
    我不清楚普通的html+js是否能实现callback的效果。
    所以一般我处理这个问题都是在取值前加个延时。
    function f2(){
           var str = "[{'name':'zs','ag……}
    window.setTimeout(f2,1000);
      

  9.   

    详细的解答,你可以参见这个地址:
    http://blog.csdn.net/lushuaiyin/article/details/7096522希望能够对你有所帮助。