在C#開發(fā)中,常常需要將數(shù)據(jù)以JSON的形式進(jìn)行返回,此時(shí)可以使用一些第三方的庫,如Newtonsoft.Json或System.Text.Json,下面以Newtonsoft.Json為例,介紹如何在C#中將對(duì)象序列化為JSON并返回給客戶端。
using Newtonsoft.Json; using System.Web.Mvc; public class HomeController : Controller { public ActionResult Index() { // 創(chuàng)建一個(gè)對(duì)象進(jìn)行序列化 var obj = new { Name = "張三", Age = 25, Gender = "男" }; // 使用JsonConvert序列化對(duì)象 string json = JsonConvert.SerializeObject(obj); // 將JSON字符串作為Content返回 return Content(json, "application/json"); } }
以上代碼中,通過Newtonsoft.Json庫的JsonConvert類將對(duì)象序列化成一個(gè)JSON字符串,并通過Controller的Content方法返回給客戶端。其中application/json指定了返回的數(shù)據(jù)類型為JSON,若返回的是XML,則應(yīng)指定為application/xml。
若需要返回一個(gè)集合的JSON數(shù)據(jù),可以直接將集合對(duì)象作為Json方法的參數(shù):
using Newtonsoft.Json; using System.Collections.Generic; using System.Web.Mvc; public class HomeController : Controller { public ActionResult Index() { // 創(chuàng)建一個(gè)集合進(jìn)行序列化 var list = new List<string> { "張三", "李四", "王五" }; // 直接將集合作為參數(shù)傳入Json方法 return Json(list, JsonRequestBehavior.AllowGet); } }
在以上代碼中,Json方法的第一個(gè)參數(shù)是要序列化的集合對(duì)象,第二個(gè)參數(shù)JsonRequestBehavior.AllowGet指定了可以接受GET請(qǐng)求的方式。