Saya ingin berbagi sedikit tips mengenai JSON serializer dan deserializer yang ada di ASP.NET AJAX. Dengan menggunakan ASP.NET Ajax pertukaran data antara client (JavaScript) dengan server menjadi gampang banget. Kita tidak perlu lagi pake XMLyang rumit. Dengan JSON data mudah banget di-parse.
Contoh code di client (JS):
function getFilterData() {
var dateFormat = '<%= HelpdeskSystem.DateFormat %>';
var filter = {
instance: $get('<%= instanceList.ClientID %>').value,
requestNo: $get('<%= requestNoTextBox.ClientID %>').value,
category: $get('<%= categoryList.ClientID %>').value,
itemCategory: $get('<%= itemAffectedList.ClientID %>').value,
ticketGroup: $get('<%= ticketGroupList.ClientID %>').value,
status: $get('<%= statusList.ClientID %>').value,
requestType: $get('<%= typeList.ClientID %>').value,
startDate: Date.parseLocale($get('<%= dateFromTextBox.ClientID %>').value, dateFormat),
finishDate: Date.parseLocale($get('<%= dateToTextBox.ClientID %>').value, dateFormat),
requestedFor: $get('requestedForEmployeeId').value,
assigneeId: ($get('<%= assigneeForEmployeeId.ClientID %>') != null) ? $get('<%= assigneeForEmployeeId.ClientID %>').value : $get('<%= assigneeForEmployeeIdLabel.ClientID %>').innerHTML
};
return Sys.Serialization.JavaScriptSerializer.serialize(filter); // Serialize object to JSON string
}
Di server side (C#), tinggal di-deserialize. Dalam hal ini saya pake data JSON tersebut pada event CallBack Janus Grid:
protected void GridEX1_CustomCallBack(object sender, Janus.Web.Common.CustomCallBackEventArgs e)
{
System.Web.Script.Serialization.JavaScriptSerializer jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var edata = System.Web.HttpUtility.UrlDecode(e.EventData.ToString());
var data = jsSerializer.DeserializeObject(edata);
// data selanjutnya di prosess di sini
}
Simple banget.
Hasil deserialize object ketika debugging tersebut dapat dilihat seperti gambar di bawah.
Dari gambar tersebut, string JSON telah di-deserialize menjadi object (string, Date, dll). Mudah bukan?
Semoga bermanfaat.