一个dataset中包含多张表,将这个dataset解析为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 " 
              }   
          ] 
      } 
     { "Head":[ { "time":"0"} ]}
     { "Head":[ { "Pcount":"1"} ]}
     { "Head":[ { "Ccount":"2"} ]} 
请问这样的json该怎么解析呀???

解决方案 »

  1.   

    eval函数不就可以解析了吗 ? 
      

  2.   

      protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Response.Clear();
                Response.Charset = "utf-8";
                Response.Buffer = true;
                this.EnableViewState = false;
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.ContentType = "text/plain";
                Response.Write(GetLikeUserName());
                Response.Flush();
                Response.Close();
                Response.End();
            }
        }
        private string GetLikeUserName()
        {
            string[] str ={ "January", "Ceshi", "jQuery", "josn", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
            StringBuilder sbstr = new StringBuilder();
            sbstr.Append("[");
            for (int i = 0; i < str.Length; i++)
            {
                if (i == str.Length - 1)
                {
                    sbstr.Append("{name:'" + str[i] + "',to:'最后中文测试" + i + "'}");
                }
                else
                {
                    sbstr.Append("{name:'" + str[i] + "',to:'中文测试" + i + Request.QueryString["q"] + "'},");
                }
            }
            sbstr.Append("]");
            
            return sbstr.ToString();
        }
    输出的格式为:
    [{name:'January',to:'中文测试0z'},{name:'Ceshi',to:'中文测试1z'}, {name:'jQuery',to:'中文测试2z'},{name:'josn',to:'中文测试3z'}, {name:'February',to:'中文测试4z'},{name:'March',to:'中文测试5z'}, {name:'April',to:'中文测试6z'},{name:'May',to:'中文测试7z'},{name:'June',to:'中文测试8z'},{name:'July',to:'中文测试9z'},{name:'August',to:'中文测试10z'}, {name:'September',to:'中文测试11z'},{name:'October',to:'中文测试12z'}, {name:'November',to:'中文测试13z'},{name:'December',to:'最后中文测试14'}]
    获取到该数据以后:通过eval(data)就可以转化了 
      

  3.   

    可以参考这里:http://topic.csdn.net/u/20090703/14/8d349262-8ca1-4bf5-998d-3a0712412149.html
      

  4.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text;public partial class josn_Default : System.Web.UI.Page
    {
        DataTable DT = new DataTable();
        DataRow DR;
        DataColumn DC = new DataColumn();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                ReturnDataTable();
                for (int i = 0; i < 10; i++)
                    {
                        DR = DT.NewRow();
                        DR["ID"] = i;
                        DR["Title"] = "胡果" + i;
                        DT.Rows.Add(DR);
                    }
                    StringBuilder Builder = new StringBuilder();
                    for (int j = 0; j < DT.Rows.Count; j++)
                    {                    Builder.AppendFormat("ID:{0},Title:{1}", DT.Rows[j][0].ToString(), DT.Rows[j][1].ToString());
                    }
                    Response.Write(Builder.ToString());
            }
        }
        public void ReturnDataTable()
        {
            DC = new DataColumn();
            DC.ColumnName = "ID";
            DC.DataType = System.Type.GetType("System.Int32");
            DT.Columns.Add(DC);
            DC = new DataColumn();
            DC.ColumnName = "Title";
            DC.DataType = System.Type.GetType("System.String");
            DT.Columns.Add(DC);
        }
    }
      

  5.   

    格式得调整
    变量里的空格去掉
    把最外层的同层级{}放到一个数组里[]<div id="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 " 
                  }  
              ] 
          }, 
        { "Head":[ { "time":"0"} ]},
        { "Head":[ { "Pcount":"1"} ]},
        { "Head":[ { "Ccount":"2"} ]} 
    ]
    </div>
    <script>
    var json = document.getElementById('json').innerHTML;
    json = eval('('+json+')'); alert(json[0].Head[0].name); // aaa
    alert(json[0].Head[0].sex); // 男
    </script>
      

  6.   


    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 map(elems,callback){
    var arr = [];
    for ( var i = 0; i < elems.length; i++ ) {
    var value = callback(elems[i],i);
    if(value!=null){
    arr[arr.length] = value;
    }
    }
    return arr.concat.apply([],arr);
    }  var t = map(_xkx.Head,function(row){
      return {
      name : row.name
                                    //helping yourself
      }
      });
     
      alert(t[0].name);
      alert(t[1].name); 
      

  7.   

    <div id="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 " 
                  }  
              ] 
          }, 
        { "Head":[ { "time":"0"} ]},
        { "Head":[ { "Pcount":"1"} ]},
        { "Head":[ { "Ccount":"2"} ]} 
    ]
    </div>
    <script>
        var json = document.getElementById('json').innerHTML;
        json = eval('('+json+')');    alert(json[0].Head[0].name); // aaa
        alert(json[0].Head[0].sex); // 男
    </script>