通过Jquery的$.Ajax方法得到一个Json,将这个对象输出到屏幕上为:   { "Head":
     [
      { 
        "name":"aaa",
        "sex":"男",
        "age":"15",
        "date":"2009-6-29 23:00:44"
       }, 
    
      { 
        "name":"bbb",
        "sex":"男",
        "age":"21",
        "date":"2009-6-29 18:24:53"
       }, 
    
      { 
        "name":"ccc",
        "sex":"男",
        "age":"40",
        "date":"2009-6-29 18:18:12"
       } 
     ]
   }
请问这样该怎么解析呀???我新手,希望能给个实例~说详细点,谢谢了~~~

解决方案 »

  1.   

    最简单的直接用
    var result = eval(json);
    应该就可以了吧。JSON的方便处就在于利用了JavaScript内置的支持,不需要你手动去解析。不过倒过来从客户端到服务器端就没这么容易了,那又是另外的话题了。
    另外注意如果你不能保证json字符串的合法性,最好把这句放到try/catch里面,免得一错整个程序都down掉。
    还有一点建议就是去下载json程序包,人家已经提供了很多相关功能,以及服务器端相关组件的链接
    http://www.json.org/json.js
      

  2.   

    试试 eval("("+request.responseText+")");
      

  3.   

    假设你通过AJAX取到的JSON数据保存在变量json中.
    你可以直接使用下面的命令
    var result = eval(json); 这样result就被eval命令"改造"成 JSON变量了.该变量的数据结构如下:result.Head[0].name 的值将是 "aaa"
    result.Head[0].sex  的值将是 "男"
    result.Head[0].age  的值将是 "15"
    result.Head[0].date 的值将是 "2009-6-29   23:00:44 "result.Head[1].name 的值将是 "bbb"
    result.Head[1].sex  的值将是 "男"
    result.Head[1].age  的值将是 "21"
    result.Head[1].date 的值将是 "2009-6-29   18:24:53"result.Head[2].name 的值将是 "ccc"
    result.Head[2].sex  的值将是 "男"
    result.Head[2].age  的值将是 "40"
    result.Head[2].date 的值将是 "2009-6-29   18:18:12 "
    希望回答对你有帮助 .
      

  4.   

     httpres = eval("("+request.responseText+")");
     httpres['head'][0]['name'];
     httpres['head'][0]['sex'];
     httpres['head'][0]['age'];
     httpres['head'][0]['date'];
     httpres['head'][1]['name'];
     httpres['head'][1]['sex'];
     httpres['head'][1]['age'];
     httpres['head'][1]['date'];
     httpres['head'][2]['name'];
     httpres['head'][2]['sex'];
     httpres['head'][2]['age'];
     httpres['head'][2]['date'];
      

  5.   

    便利json应该是不知道json的格式情况下便利  才叫便利json吧<script>
    var json={   "Head ": 
              [ 
                {   
                    "name ": "aaa ", 
                    "sex ": "男 ", 
                    "age ": "15 ", 
                    "date ": "2009-6-29   23:00:44 " 
                  },   
            
                {   
                    "name ": "bbb ", 
                    "sex ": "男 ", 
                    "age ": "21 ", 
                    "date ": "2009-6-29   18:24:53 " 
                  },   
            
                {   
                    "name ": "ccc ", 
                    "sex ": "男 ", 
                    "age ": "40 ", 
                    "date ": "2009-6-29   18:18:12 " 
                  }   
              ] 
          }; function $type(o){
    if(o == undefined)return false;
    var type = typeof o;
    if(type == "object" && o.nodeName)
    {
    switch(o.nodeType)
    {
    case 1:return "element";
    case 3:return /\S/.test(o.nodeValue) ? "textnode" : "whitespace";
    }
    }
    if(type == "object" || type == "function")
    {
    switch(o.constructor)
    {
    case Array : return "array";
    case RegExp : return "regexp";
    }
    if(typeof o.length == "number")
    {
    if(o.item)return "collection";
    if(o.callee)return "arguments";
    }
    }
    return type;
    };   function ss(o){
    if($type(o) == "object")
    {
    for(var i in o)
    {
        alert(i+"="+o[i])
    if($type(o[i])=="array")
    {
      for(var j=0;j<o[i].length;j++)
      {
      if($type(o[i][j])=="object")
      arguments.callee(o[i][j]);
      }
    }
    }
    }
    }ss(json)
    </script>
      

  6.   

    输出屏幕直接用alert(xhr.responseText);
    解析成js对象var json; eval('json='+xhr.responseText);
      

  7.   

    请教: json 除了快 还有什么其他方面的优点?
      

  8.   

    操作方便..JSON可以看起是对象的实例...