由于是自学json、jquery,不是很熟悉、  请大侠们帮忙下、   
下面是我用jquery  获取的后台json数据
{"jobID":10004,  "processID":100,"appID":4,"subProjectId":0,"projectFolderId":0,"step":0,"processName":"项目登记","preJobBaseId":0,"ParentNode":0,
"ChildNodes":[{"jobID":10005,    "processID":101,"appID":4,"subProjectId":0,"projectFolderId":0,"step":0,"processName":"任务分配","preJobBaseId":0,"ParentNode":0,
"ChildNodes":[{"jobID":10007,    "processID":102,"appID":4,"subProjectId":0,"projectFolderId":23770,"step":1,"processName":"专业部门经理分配","preJobBaseId":0,"ParentNode":0,
"ChildNodes":[{"jobID":10008,    "processID":103,"appID":4,"subProjectId":0,"projectFolderId":23771,"step":1,"processName":"任务办理","preJobBaseId":0,"ParentNode":0,
"ChildNodes":[{"jobID":10011,    "processID":104,"appID":4,"subProjectId":0,"projectFolderId":23770,"step":1,"processName":"专业部门经理审核","preJobBaseId":0,"ParentNode":0}
]}
]}
]}
]}
我该怎么遍历呢。说是说递归,也理解递归,但就是写不来、
这是我过去方式
 $.ajax({
 url:'<%=basePath%>taskMonitor.do?method=monitor', 
type:'get', //数据发送方式 
dataType:'json', //接受数据格式 
data:'taskId='+urlpath,  //要传递的数据 
success : function(json){                                                         这里该如何遍历呢,。我的目的是把json数据里的对象、的一个属性遍历显示到树上。 所谓对象里对象就是自己,只是在树上显示成子节点 ,
                                                       }
})

解决方案 »

  1.   

    function getAllCld(obj){
       for(var o in obj){
          if(typeof o == "string"){
         //dosomething
         }
         else {
           getAllCld(o);
        }
      }
    }
    根据需要自己改改,思路大体是这样
      

  2.   

    这就一个JS的对象数组嘛,很好理解的
    接1楼写的话,就直接用 o.属性名 就可以访问 : 后面的值了
    就是一组键值对集合,可以理解为JAVA里的MAP
      

  3.   

    function a(jsondata){
       othis=this
       $.each(jsondata,function(a,v){
        //a 属性命,v值
        if(typeof v =="object"){
         othis(v)
        }  
     }
    }
      

  4.   

     //获取国家信息
     function GetCountryList<%=DivName %>()
     {
         $.ajax({
           type:"Post",
           url:"<%=BLL.Config.root %>ProAjax/Clearing/GetCountry.aspx",
           data:"",
           success:function (msg){
             var datalist=eval(msg);
             for(var i=0;i<datalist.length;i++){
              var key=datalist[i][0];
              var value=datalist[i][1];
               $("<option value="+value+">"+key+"</option>").appendTo($("#ddlCountry<%=DivName %>"));
             }
              $("<option value=''>其他国家或地区</option>").appendTo($("#ddlCountry<%=DivName %>"));
              $("#ddlCountry<%=DivName %>").val(35);
              GetProvinceById<%=DivName %>();
           }   
         })
     }
      

  5.   

    有分吗?是这样的。 //获取国家信息
     function GetCountryList<%=DivName %>()
     {
         $.ajax({
           type:"Post",
           url:"<%=BLL.Config.root %>ProAjax/Clearing/GetCountry.aspx",
           data:"",
           success:function (msg){
             var datalist=eval(msg);
             for(var i=0;i<datalist.length;i++){
              var key=datalist[i][0];
              var value=datalist[i][1];
               $("<option value="+value+">"+key+"</option>").appendTo($("#ddlCountry<%=DivName %>"));
             }
              $("<option value=''>其他国家或地区</option>").appendTo($("#ddlCountry<%=DivName %>"));
              $("#ddlCountry<%=DivName %>").val(35);
              GetProvinceById<%=DivName %>();
           }   
         })
     }
      

  6.   

     有劳大家帮忙指点。在下这里解决了、   谢谢大家了这是我的代码:   
    <script> 
    var myTree;
    var pnode;
    var ord=0;

    function CreateTree() {

    alert(urlpath);

    myTree = new ECOTree('myTree','myTreeContainer');
    myTree.config.colorStyle = ECOTree.CS_LEVEL;
    myTree.config.useTarget = false;
    myTree.config.defaultNodeWidth = 150;
    myTree.config.defaultNodeHeight = 20;
    myTree.config.iSubtreeSeparation = 20;
    myTree.config.iSiblingSeparation = 15;


     $.ajax({
     url:'<%=basePath%>taskMonitor.do?method=monitor', 
    type:'get', //数据发送方式 
    dataType:'json', //接受数据格式 
    data:'taskId='+urlpath,  //要传递的数据 
    success : function(json)
    {
    CreateTreeRootNode(json);

    })
    }

    function CreateTreeRootNode(obj)
    {
    $.each(obj, function(key, value){
    if (key=="processName")
    {
    pnode = myTree.add(0,-1,value); 
    }

    if(typeof(value)=="object")
    {
    CreateTreeChilrenNode(value);
    }
    })

    myTree.UpdateTree();
    }

    function CreateTreeChilrenNode(obj)
    {
    ord = ord + 1;
    $.each(obj, function(key, value){
    if (key=="processName")
    {

    pnode = myTree.add(ord,pnode.id,value); 
    }
    if(typeof(value)=="object")
    {
    CreateTreeChilrenNode(value);
    }
    })
    }

    function getallNodes(obj)
    {
    alert("进入节点...")
    $.each(obj, function(i, item){ 

    if(typeof(item)=="object")
    {
    getallNodes(item);

    }
      }); 
    }


    </script>