Labvakar,
Jaunais gads ir sagaidīts, laiks sākt strādāt ņemot piemēru no Stahanoviešiem:) Iespējams tādā veidā arī glābsim mūsu valsti!
Šoreiz par vienu interesantu klasi (JavaScriptSerializer), to var atrāst System.Web.Extensions.dll kompilācijā. Klases galvenais uzdevums, objektu, kas izveidots Microsoft.NET vidē aprakstīt JavaScript saprotamā formā (Json). Pārveidošana notiek abos virzienos. Šī te klase tiek pielietota ASP.NET AJAX un topošā Microsoft ASP.NET MVC.
Apskatīsim piemēru.
Uzrakstīsim vienkāršu klasi.
/// <summary>
/// The black box
/// </summary>
public class BlackBox
{
/// <summary>
/// Initializes a new instance of the <see cref="BlackBox"/> class.
/// </summary>
public BlackBox()
{
Description = "Class description";
this.List = new[] {"Apple", "Orange"};
}
/// <summary>
/// Gets or sets the description.
/// </summary>
/// <value>The description.</value>
public string Description
{
get; set;
}
/// <summary>
/// Gets or sets the list.
/// </summary>
/// <value>The list.</value>
public string[] List
{
get; set;
}
}
Izveidosim objektu
var blackBox = new BlackBox();
Šo te objektu ir nepieciešamība nosūtīt uz klientu, gan arī saņemt no klienta. Šim te nolūkam izveidosim paplašinošas metodes tipam objekts(object) un kopai(string)
using System.Web.Script.Serialization;
public static class Helpers
{
public static string ObjectToJson(this object obj)
{
var o = new JavaScriptSerializer();
return o.Serialize(obj);
}
public static T JsonToObject<T>(this string str)
{
var o = new JavaScriptSerializer();
return o.Deserialize<T>(str);
}
}
Tagad esam gatavi manipulēt ar datiem.
Datu raidīšanu uz klientu var veikt šādi.
var blackBox = new BlackBox();
var s = blackBox.ObjectToJson();
Response.ContentType = "application/json";
Response.Write(s);
Uz klientu objekts nonāk lūk šādā te formā, tie kas labi pazīstami ar JavaScript noteikti atpazīst pierakta formu. Starp citu JavaScriptā viss ir Hashtable;)
{"Description":"Class description","List":["Apple","Orange"]}
Savukārt saņemto datu apstrāde no klienta var veikt šādi.
var jsonString = "{\"Description\":\"Class description from client\",\"List\":[\"Lemon\"]}";
var o = jsonString.JsonToObject<BlackBox>();
Tātad visai elementāri atrisinām komunikāciju starp JavaScript un ASP.NET.
Cerams noderēs!
Posted
Jan 03 2009, 07:47 PM
by
andrejs.mamontovs