ایجاد فایل JSON با #C در MVC

سه شنبه 12 آبان 1394

ساختار دستورات JSON زیر مجموعه ای از ساختار ایجاد شیء در جاوا اسکریپت (JavaScript) است، در این مقاله چگونگی ایجاد یک فایل JSON را با استفاده از کلاس JavaScriptSerializer توضیح می دهیم.

ایجاد فایل JSON  با #C در MVC

در مقاله قبلی با نام "معرفی JSON " در مورد JSON صحبت کردیم. حالا در این مقاله می خواهیم یک فایل JSON را با استفاده از کلاس JavaScriptSerializer ( ساخته شده روی dot Net framework ) ایجاد کنیم. در این مطلب آشنایی با روش Code first لازم است.

در این نمونه برنامه از Visual Studio 2013 استفاده کرده ایم.

مرحله 1:

برنامه VS را باز کنید. به گزینه File رفته New Project را انتخاب کنید و بعد از کلیک بر روی Web و انتخاب زبان #C گزینه ASP.NET Web Application را بزنید. نام برنامه را CreatingJsonFile قرار داده و OK را کلیک کنید.

مرحله 2:

حالا در قسمت solution explorer بر روی پوشه model راست کلیک کرده و یک کلاس با نام Person.cs ایجاد کنید، سپس تعدادی property برای آن تعریف کنید.

مرحله 3:

در اینجا بر روی پوشه Controller راست کلیک کنید تا یک کنترلر اضافه شود برای این برنامه لازم است از صفحه ظاهر شده گزینه MVC5 controller with view using Entity Framework را انتخاب کرده و Add را کلیک کنید.

 

بعد از Add پنجره ای نمایان می شود که در آن ابتدا model را با نام Person انتخاب کرده و در تب بعدی  add New Data Context class را بزنید تا بستر ارتباطی با بانک اطلاعاتی مشخص شود، اما ما در اینجا نام بستر ارتباطی یا Context را تغییر نمی دهیم ولی اگر بخواهید می توانید این کار را انجام دهید.

با انجام این مراحل کنترلر با View های مربوط ایجاد خواهد شد.

 

مرحله 4 :

به App_start folderMAND رفته و بر روی فایل RoutConfig.cs کلیلک کنید و نام کنترلر پیش فرض را که Home می باشد را به People تغییر دهید، با این کار زمانی که شما برنامه را اجرا می کنید، صفحه شروع People/index خواهد بود.

 

مرحله 5:

حالا کلید F5 را بزنید و برنامه را اجرا کنید و زمانی که برای بار اول برنامه را اجرا می کنید، یک پایگاه داده با جدولی به نام People در بانک اطلاعاتی ایجاد می شود.

حالا تعدادی داده به جدول اضافه کنید، بر روی لینک "افزودن جدید" کلیک کرده که فرمی باز می شود. فرم را پر کرده و بر روی create کلیک کنید، در اینجا ما 3 رکورد اضافه کرده ایم. رکوردهای زیر در جدول People پایگاه داده هستند:

مرحله 6:

در این مرحله می خواهیم یک فایل Json با استفاده از کلاس JavaScriptSerializer ایجاد کنیم. کلاس JavaScriptSetializer در فضای نام System.Web.Script.Serialization قرار دارد و این فضای نام در System.web.Extensions.dll یافت می شود.

بنابراین برای استفاده از کلاس JavaScriptSerializer باید رفرنس System.web.Extensions.dll را به پروژه خود اضافه کنید:

حالا کنترلر Person را تغییر می دهیم:

// GET: People  
[HttpGet]  
public ActionResult Index()  
    {  
        return View(db.People.ToList());  
    }  
    // Create Json file  
    //here i am not passing anything from view to controller  
    [HttpPost]  
public ActionResult Index(Person obj)  
{  
    // retrive the data from table  
    var personlist = db.People.ToList();  
    // Pass the "personlist" object for conversion object to JSON string  
    string jsondata = new JavaScriptSerializer().Serialize(personlist);  
    string path = Server.MapPath("~/App_Data/");  
    // Write that JSON to txt file,  
    System.IO.File.WriteAllText(path + "output.json", jsondata);  
    TempData["msg"] = "Json file Generated! check this in your App_Data folder";  
    return RedirectToAction("Index");;  
} 

در صفحه Index یک دکمه Submit اضافه کرده ایم تا زمانی که کاربر روی این دکمه کلیک می کند به سمت action method در Index می تواند Post شود.

حالا اگر F5 را زده و برنامه را اجرا کنید، صفحه زیر را می بینید:

حالا بر روی دکمه کلیک کرده و تصویر زیر نمایان می شود:

در اینجا فایل Json ایجاد می شود:

در این مقاله ما به طور غیر مستقیم Serialization را یاد گرفتیم

Serialization چیست؟

یک فرایند تبدیل شی به رشته ای از بایت ها به منظور ذخیره سازی شی و یا انتقال آن به حافظه، پایگاه داده و یا یک فایل است. هدف اصلی آن حفظ وضعیت یک شیئ به منظور دوباره ایجاد کردن آن در زمان نیاز است.

 

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید