ps: JSON.stringify() 前端javascript轉Json指令  

 

以下範例是我再Youtube看到並copy下來的以便拿來使用

首先我們先建立一個model

Employee.cs :

public class Employee1
{
    public int EmpNo{get;set;}
    public String EmpName { getset; }
    public String EmpAddress { getset; }
    public int  EmpSalary{get;set;}
    public int EmpDeducation { getset; }
 
}

接著建立處裡Json類別

JSONHelper.cs

using System.Runtime.Serialization.Json;
using System.Web.Script.Serialization;
using System.IO;
using System.Text;
public class JSONHelper
{
 
    public  string JsonSerializar<T>(T t)
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
        MemoryStream ms = new MemoryStream();
        ser.WriteObject(ms, t);
        String jsonstring = Encoding.UTF8.GetString(ms.ToArray());
        ms.Close();
        return jsonstring;
 
    }
 
    public  T JsonDeSerialization<T>(string jsonobject)
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
        MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonobject));
        T obj = (T)ser.ReadObject(ms);
        return obj;
 
    }

}
JsonSerializar<T>(T t)

   建立一個范型: <T> 無預設型別 

   於是我們傳了<Employee1>(emp) 進去

雖然我不太懂裡頭的Json物件的轉換關係,但去官網查了一下以下意思

 

DataContractJsonSerializer(Type) 初始化 DataContractJsonSerializer 類別的新執行個體,以序列化或還原序列化指定之型別的物件。

 

 

MemoryStream() 使用初始化為零的可擴展容量,初始化 MemoryStream 類別的新執行個體。

 

WriteObject(Stream, Object) 將指定物件序列化為 JavaScript 物件標記法 (JSON) 資料,然後將產生的 JSON 寫入資料流。 (覆寫XmlObjectSerializer.WriteObject(Stream, Object)。)

 

再來執行檔:

testTogetJson.aspx

 JSONHelper jsp = new JSONHelper();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
 
            
            Employee1 emp = new Employee1();
            emp.EmpNo = 1;
            emp.EmpName = "Josh Json";
            emp.EmpAddress = "Taipei";
            emp.EmpSalary = 5555000;
            emp.EmpDeducation = 1200;
 
            string jsondata = jsp.JsonSerializar<Employee1>(emp);
            Response.Write("Json Sample: +" + jsondata);
}
}

 

    已上簡單的Json傳值sample夠清楚了吧!!

之後使用 

JsonSerializar<Employee1>(emp)

便可輸出Json 格式字串

 

那接收Json呢!!

我遇過的第一個方法是利用  jquery 的 ajax 來接值

再來若用後置碼的話:

Ex:

 Employee1 emp = new Employee1();
            emp.EmpNo = 1;
            emp.EmpName = "Josh Json";
            emp.EmpAddress = "Taipei";
            emp.EmpSalary = 5555000;
            emp.EmpDeducation = 1200;
 
           string jsondata = jsp.JsonSerializar<Employee1>(emp);
           Employee1 empReceive = (Employee1)jsp.JsonDeSerialization<Employee1>(jsondata);
           Response.Write("EmpNo =" + empReceive.EmpNo);
           Response.Write("<br />");
           Response.Write("EmpName =" + empReceive.EmpName);

 也就是承上面例子中有個反序列化方法

JsonDeSerializatio()

 再把他給轉回來及可 ~~

 

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 JoshS 的頭像
    JoshS

    JoshS的部落格

    JoshS 發表在 痞客邦 留言(0) 人氣()