ps: JSON.stringify() 前端javascript轉Json指令
以下範例是我再Youtube看到並copy下來的以便拿來使用
首先我們先建立一個model
Employee.cs :
public class Employee1 { public int EmpNo{get;set;} public String EmpName { get; set; } public String EmpAddress { get; set; } public int EmpSalary{get;set;} public int EmpDeducation { get; set; } }
接著建立處裡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()
再把他給轉回來及可 ~~
全站熱搜