C# javascript 對象轉換(Eval 函數)

 

這之中使用了以前一些js調用服務器端腳本代碼。

頁面代碼:如下

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>無標題頁</title>
  
    <script type="text/javascript" language="javascript">
       
        var xmlHttp;
       
        //創建XMLHTTP對象,判斷瀏覽器是IE還是其他瀏覽器
        function createXMLHttp()
        {   //IE
            if(window.ActiveXObject)
            {
                return new ActiveXObject("Microsoft.XMLHttp");
            }
            //其他遵循W3C標註的瀏覽器
            if(window.XMLHttpRequest)
            {
                return new XMLHttpRequest();
            }
        }
       
        function getBook()
        {
        
            //調用createXMLHttp創建xmlHttp對象
            xmlHttp=createXMLHttp();
            //默認使用異步回髮狀態是TRUE,此時與服務器通訊有5狀態
            xmlHttp.onreadystatechange=changeState;
            //通過GET方法發送請求道服務器 讀取Books.xml數據,這裏採用的是相對路徑
            xmlHttp.open("GET","default.aspx",true)
            //在使用GET方法的時候.send方法法的數據類型爲NULL ,具體參見Http通訊協議
            xmlHttp.send(null);
        }
        //在與服務器通訊過程中的5種狀態
        function changeState()
        {
            if(xmlHttp.readyState==4) //當xmlHttp.readyState=4的時候說明通信完畢,
            {
                if(xmlHttp.status==200)//雖然通訊完畢,但是還要考慮 請求的服務器頁面是否存在,xmlHttp.status=200表示OK了 頁面存在
                {
                      ShowInfo();
                }
            }    
        }
        function ShowInfo()
        {
            //將json字符轉換成json對象使用JS的內置對象eval函數
           var info= eval('('+xmlHttp.responseText+')');
           var len=info.length;
           var div= document.getElementById("showInfo");

             var td="";
             for(var i=0;i<len;i++)
             {
              td +="<tr><td>"+info[i].EmployeeID+"</td><td>"+info[i].EmployeeName+"</td><td>"+info[i].EmployeeInfo+"</td></tr>"
           
             }
             div.innerHTML="<table  class='vtable'>"
             +"<tr><td>用戶ID</td><td>用戶名</td><td>用戶信息</td></tr>"
             +td
             +"</table>"; 
        }

    </script>
    <style>     
    .vtable{border-collapse:collapse;border:none;}
    .vtable td {border:solid #090 1px;}
    </style>
</head>
<body>
    <form id="form1" runat="server" >
    <div id="showInfo"  >
    </div>
    <script>
        getBook();
    </script>
    </form>
</body>

</html>

 

以下是服務器端代碼

主要調用了 一下兩個方法。

 public class Employee
{
    private string[] employeeInfo;
   
    public int EmployeeID;
    public string EmployeeName;
    public string[] EmployeeInfo
    {
        get { return this.employeeInfo; }
        set { this.employeeInfo = value;}
    }
}
//獲取JSON的方法主要是使用了using Newtonsoft.Json;命名空間中的JavaScriptConvert.SerializeObject();方法

 public string ToJSONString(int employeeID, string employeeName, string[] employeeInfo)
    {
        Employee employee = new Employee();
        employee.EmployeeID = employeeID;
        employee.EmployeeName = employeeName;
        employee.EmployeeInfo = employeeInfo;

        //爲了寫兩個對象,多寫了一個實例
        Employee employee1 = new Employee();
        employee1.EmployeeID = employeeID;
        employee1.EmployeeName = employeeName;
        employee1.EmployeeInfo = employeeInfo;
        IList<Employee> list=new List<Employee>();
        list.Add(employee);
        list.Add(employee1);

       

        return JavaScriptConvert.SerializeObject(list);
    }

 

Defalut.aspx頁面中 pageload下面 做了如下操作

  protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
             //這裏主要是原JSON.net 使用了一個webserverice調用了相關方法,這方面根據個人需要可以自行修改。
            MyServ.WebService MyWebServ = new MyServ.WebService();
            string[] info = new string[] { "愛牛牛","12313","風動" };
            string employeeJSON = MyWebServ.ToJSONString(12, "大熊", info);

            Response.Write(employeeJSON);
            Response.End();
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章