2012-01-26 8 views

उत्तर

8

आप JavaScriptSerializer कक्षा का उपयोग कर सकते हैं जो ढांचे में निर्मित है।

var serializer = new JavaScriptSerializer(); 
string json = serializer.Serialize(new { param1 = "data1", param2 = "data2" }); 

पैदावार: उदाहरण के लिए:

{"param1":"data1","param2":"data2"} 

लेकिन आप ASP.NET में JSON लौटने MVC 3 के बारे में बात के बाद से वहाँ पहले से ही निर्मित तकनीक है कि आप सीधे वस्तुओं लौट सकते हैं और अंतर्निहित है की अनुमति देते हैं इस तरह के नलसाजी के साथ अपने कोड को प्रदूषित करने से बचने के लिए आधारभूत संरचना जेएसओएन में इस ऑब्जेक्ट को क्रमबद्ध करने का ख्याल रखती है।

public ActionResult Foo() 
{ 
    // it's an anonymous object but you could have used just any 
    // view model as you like 
    var model = new { param1 = "data1", param2 = "data2" }; 
    return Json(model, JsonRequestBehavior.AllowGet); 
} 

अब आप पाइपलाइन के बारे में चिंता करने की जरूरत:

ASP.NET MVC 3 में उदाहरण के लिए आप बस एक JsonResult लौटने एक नियंत्रक कार्रवाई लिखें। एएसपी.नेट एमवीसी में आपके पास नियंत्रक क्रियाएं होती हैं जो कार्रवाई के परिणाम लौटाती हैं और आप उन क्रिया परिणामों के लिए दृश्य मॉडल पास करते हैं। JsonResult के मामले में यह अंतर्निहित बुनियादी ढांचा है जो आपके द्वारा जेएसओएन स्ट्रिंग में भेजे गए दृश्य मॉडल को क्रमबद्ध करने का ख्याल रखेगा और इसके अतिरिक्त Content-Type प्रतिक्रिया शीर्षलेख को application/json पर सेट करें।

+0

खबरदार कि IE कैशिंग प्राप्त अनुरोधों के बारे में काफी आक्रामक है। एक 'आउटपुट कैश]' विशेषता आमतौर पर आवश्यक होगी। – jgauffin

2

सबसे आसान तरीका है इसे इस तरह हो सकता है:

public JsonResult GetData() 
{  
    var myList = new List<MyType>(); 

    //populate the list 

    return Json(myList); 
} 
संबंधित मुद्दे