Thursday, February 21, 2013

Encode Json dengan ASP.NET tanpa MVC



Encode Json dengan ASP.NET tanpa MVC

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.
Dalam tutorial ASP.NET yang beredar, sering disebutkan bahwa jika ingin encode atau serialize json dengan ASP.NET dicontohkan dengan menggunakan project MVC 4. Namun dalam artikel ini kita menggunakan project Web Form asp yang biasa digunakan.
Idenya adalah mengambil data pada database (SQL Server) lalu kita encode setiap data yang diambil. Sehingga data hasil encode json dapat digunakan untuk aplikasi server side yang lainnya. Code yang digunakan adalah sebagai berikut.
public class ForumThread
{
public string Judul { get; set; }
public string Isi { get; set; }
}

public class JsonHelper
{
/// <summary>
/// JSON Serialization
/// </summary>
public static string JsonSerializer<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;
}

/// <summary>
/// JSON Deserialization
/// </summary>
public static T JsonDeserialize<T>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
}
}



protected void Page_Load(object sender, EventArgs e)
{
string SuryoCon = WebConfigurationManager.ConnectionStrings["KoneksiForum"].ConnectionString;
SqlConnection con = new SqlConnection(SuryoCon);

SqlCommand com = new SqlCommand("select * from Post_Thread",con);
con.Open();
SqlDataReader rd;
rd = com.ExecuteReader();
int i = 1;

Response.Write(Request.QueryString["jsoncallback"] + "([");
while (rd.Read())
{
if (i > 1) { Response.Write(","); }
ForumThread p = new ForumThread();
p.Judul = rd["judul"].ToString();
p.Isi = rd["isi"].ToString();

string jsonString = JsonHelper.JsonSerializer<ForumThread>(p);
Response.Write(jsonString);
i++;
}
Response.Write("]);");
}

Hasil encode pada web akan muncul sebagai berikut :




Data-data tersebutlah yang akan di parsing dalam aplikasi serverside lainnya. Terima kasih.

0 comments:

Post a Comment