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.










