JSON Serializer & Deserializer

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.

image

Dari gambar tersebut, string JSON telah di-deserialize menjadi object (string, Date, dll). Mudah bukan?

Semoga bermanfaat.

Share this post: | | | |
Published Thursday, July 10, 2008 9:43 AM by cahnom

Comments

# re: JSON Serializer & Deserializer

Thursday, July 10, 2008 11:30 AM by agung

Udah pernah pake ini ? code.msdn.microsoft.com/RegClientControls

Menarik. Sekarang saya pake itu untuk mempermudah proses development dari sisi client side. Tools itu gunanya untuk membuat control web form kita accessible di external javascript tanpa harus menggunakan tag <%= ... %> lagi. :)

You should try that ! It's really helpful.

# re: JSON Serializer & Deserializer

Thursday, July 10, 2008 2:17 PM by cahnom

Kebetulan di tempat saya tidak boleh sembarangan menggunakan 3rd party component sehingga masih butuh <%= %>

Terima kasih atas informasinya.

Saya juga telah menulis kelanjutan dari post ini untuk deserialize JSON ke strong-type object di www.masykur.web.id/.../Deserialize-JSON-String-ke-Strong-Type-Object.aspx

# re: JSON Serializer & Deserializer

Thursday, July 10, 2008 2:42 PM by agung

RegClient itu memang third party, tapi sourcenya tersedia dan bisa dicompile ulang. Di dalamnya kalo dilihat sourcenya sebenernya hanya berisi javascript untuk register object. Disini saya pake versi modifikasi yang telah di recompile ulang, jadi dijadikan DLL yang diberi nama internal. :)

Ambil sourcenya, lalu recompile.

Yang menarik dari library ini adalah bahwa saya sekarang bisa bekerja dengan external javascript untuk mengkonsumsi ID pada web control. Dengan regclients, pekerjaan yang dulu harus pake <%= ... %> bisa disentralisasi menggunakan external javascript. Itu yang saya suka. But again, this is personal opinion. :)

HTH.

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Enter the numbers above:
Powered by Community Server (Commercial Edition), by Telligent Systems