PDA

View Full Version : استفاده از فرمت جيسون JSON



AmirGhasemi
یک شنبه 16 مهر 1391, 09:24 صبح
سلام دوستان!
من مي خواهم يك سري اطلاعات كه به فرمت جيسون است را در گريدهايم نمايش دهم!
لطفا اطلاعات مختصري در باب موارد زير برايم بدهيد
1) اصلا جيسون چيست و چه پروتكلي دارد؟! شبيه XML است?
2) آيا كار كردن با اين فرمت راحت است؟
3) با سي شارپ مشكلي ندارد؟

moferferi
یک شنبه 16 مهر 1391, 20:19 عصر
سلام
آموزش استفاده از روش جیسون

1)ابتدا صفحه ای به نام Ajax_process.aspx ایجاد میکنیم و سپس در فرم لود کد زیر را وارد میکنیم
[ if Request["CMD"] == "fillgrid")
{
var memberList = from m in db.Members
select new { m.Email, m.Active, m.Name, m.Family, m.Note };
JavaScriptSerializer js = new JavaScriptSerializer();
string Ser = "Not Found";
if (memberList != null)
{
Ser = js.Serialize(memberList);
}
Response.Write(Ser);
Response.End();
}
2)در این قسمت باید هسته جی کوئری را به برنامه اضافه کنیم و یک فایل جاوا ایجاد کنیم و کد های زیر را داخل اون قرار بدیم
function FillGrid() {
$.ajax({
url: "Ajax_proccess.aspx?cmd=fillgrid",
type: "POST",
data: null,
async: true,
success: function (datafromserver) {
list = eval("(" + datafromserver + ")");
GenerateGrid(list);
}
,
error: function (er) {
alert(er);
}
});
}
function GenerateGrid(list) {
var _HTML = "<table cellspacing='0px' bordercolor='gray' class='tblgrid' border='1px' cellpadding='3px' width='500px'>";
_HTML += "<tr class='trheader'><td>-</td><td>ایمیل</td><td>نام</td><td>نام خانوادگی</td><td>وضعیت</td><td>توضیحات</td></tr>";
for (var i = 0; i < list.length; i++) {
_HTML += BuildRow(list[i]);
}
$("#MyGrid").html(_HTML + "<table>");

$(".trheader > td").addClass("tdheader");
$(".trrow > td").addClass("tdrow");
}
function BuildRow(row) {
_HTML = "<tr class='trrow'><td><input class='del' type='checkbox' value='#EMAILID#'/></td><td>#EMAIL#</td><td>#NAME#</td><td>#FAMILY#</td><td><img src='Icons/#ACTIVE#active.png'/></td><td>#NOTE#</td></tr>";
PreIconName = "";
if (row.Active.toString().toLowerCase() == "false")
PreIconName = "de";
_HTML = _HTML.replace("#EMAIL#", row.Email).
replace("#EMAILID#", row.Email).
replace("#NAME#", row.Name).
replace("#FAMILY#", row.Family).
replace("#ACTIVE#", PreIconName).
replace("#NOTE#", row.Note);
return _HTML;
}

حال در صفحه هم مثلا به نام Default.aspx کافسیت یک خط کد اضافه کنیم
<div id="MyGrid">بارگذاری...</div>
و در پائین div دکمه ای ایجاد کنیم و فانکشن fillgrid را اجرا کنیم


در این مثال وقتی که متد FillGrid گرید درون فایل جاوا صدا زده شود از طریق روش جیسون به صفحه Ajax_proccess.aspx کوئری استرینگ cmd را با مقدار fillgrid ارسال میکنه
که در نتیجه دستور سلکت درون فرم عمل کرده و دیتا مورد نظر را به صورت سریالایز شده به سمت کلاینت ارسال میکنه
در این بخش کلاینت داده های خام دریافتی از سمت سرور را به وسیله تابع eval درون متغیر list میریزیم.و سپس مقدار list را به فانکشن GenerateGrid انتقال مییدم.

البته این گریدی که من ساختم بر حسب نیاز خودم توی یک پروژه بود.فکر میکنم مثال گویای همه چیز باشه.و شما میتونید هر گریدی را با این روش ایجاد کنید.
البته من متد اضافه ،ویرایش و خذف ،sort و paging را هم به وسیله همین روش نوشتم.

dorparasti
دوشنبه 17 مهر 1391, 01:42 صبح
در حد مختصر می تونم اینطور جواب بدم

1- جی سان یک فرمت برای انتقال اطلاعات است که بیشتر بین یک وب سرویس و یک کلاینت ( می تونه یک سایت باشه ) به کار میره . به خاطر انعطاف و سبکی به جای xml ترجیح داده میشه از جی سان استفاده بشه .
2- کار کردن مستقیم با اون شاید زیاد جالب نباشه . برای کار با جی سان ( ساختن ، خواندن و دستکاری آن ) از یکسری ابزار استفاده می کنند که این کار رو راحت می کنه . برای دات نت می تونم JSON.NET (http://json.codeplex.com) و ServiceStack (http://www.servicestack.net) رو نام ببرم .
3- جی سان هم مثل xml وابسته به فریمورک خاصی نیست .

اطلاعات بیشتر اینجا (http://barnamenevis.org/showthread.php?262053-JSON-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F) و اینجا (http://amib.ir/weblog/?p=532)