2014-10-13 5 views
23

viewmodel वस्तु में, नीचे संपत्ति है:उस्तरा मॉडल ऑब्जेक्ट से JSON ऑब्जेक्ट प्राप्त करने के लिए कैसे जावास्क्रिप्ट में

public IList<CollegeInformationDTO> CollegeInformationlist { get; set; } 

ध्यान में रखते हुए, जावास्क्रिप्ट का पालन है:

var obj = JSON.stringify('@Model.CollegeInformationlist'); 
    alert(obj[1].State); //NOT WORKING, giving string char 

     $.each('@Model.CollegeInformationlist', function (i, item) { 
    var obj = JSON.stringify(item); 
    var r = $.parseJSON(obj); 
    alert(r.State); //just giving undefined. 
    }); 

कृपया यहाँ मार्गदर्शन, कैसे मैं जावास्क्रिप्ट में JSON ऑब्जेक्ट प्राप्त कर सकता हूं। (एक क्षेत्र अपने मॉडल देखे बिना मैं केवल शामिल किया है)

var json = @Html.Raw(Json.Encode(@Model.CollegeInformationlist)); 

यह होगा उत्पादन निम्नलिखित:

+0

अपने जावास्क्रिप्ट अपने CollegeInformationDTO वर्ग कैसा दिखता है पता नहीं है:

यह रूप में सरल रूप में किया जाना चाहिए। मेरे आखिरी काम पर हमने स्क्रिप्ट में एक ऑब्जेक्ट को मॉडल के समान संरचना के साथ परिभाषित किया और फिर जावास्क्रिप्ट ऑब्जेक्ट में मॉडल को मैप करने के लिए jquery .map किया। यह भी सुनिश्चित करें कि आप जो दृश्य में जा रहे हैं वह एक JSON स्ट्रिंग –

+0

है, आपको JSON पर अपने मॉडल ऑब्जेक्ट को क्रमबद्ध करने की आवश्यकता है। आपको एक विधि (या संपत्ति) बनाना चाहिए जो उस परिणाम को लौटाता है। – musefan

+0

क्या आप कृपया मुझे कुछ करने के लिए कुछ सामान साझा कर सकते हैं। यहां, मैंने 'var obj = JSON.stringify ('@ Model.CollegeInformationlist') लिखा है; इसलिए, इसे JSON ऑब्जेक्ट में परिवर्तित करना चाहिए और स्पष्ट रूप से '.Setate' प्रॉपर्टी' लिखने पर परिणाम देने में सक्षम होना चाहिए, लेकिन यह एक तरह से काम नहीं कर रहा है । ऐसा लगता है, ऑब्जेक्ट स्ट्रिंग प्रकार में परिवर्तित हो जाता है। – dsi

उत्तर

59

आप निम्न का उपयोग कर सकते

<script> 
    var json = [{"State":"a state"}]; 
</script> 

Working Fiddle

+0

मुझे JSON संदर्भ नहीं मिला, 'नाम' जेसन 'वर्तमान संदर्भ ' में मौजूद नहीं है, यदि मैं जोड़ता हूं, तो 'न्यूटॉन्सॉफ्ट.जेसन।' फिर, 'एनकोड' नहीं मिला। – dsi

+0

@ धवल http://msdn.microsoft.com/en-us/library/system.web.helpers.json.encode(v=vs.111).aspx – hutchonoid

+0

धन्यवाद। यह पूरी तरह से काम करता है। – dsi

1

आप तो यार मॉडल से जेसन ऑब्जेक्ट बनाना चाहते हैं:

foreach (var item in Persons) 
    { 
    var jsonObj=["FirstName":"@item.FirstName"] 
    } 

या उपयोग Json.Net अपने मॉडल से json बनाने के लिए:

string json = JsonConvert.SerializeObject(person); 
0

ASP.NET कोर में IJsonHelper.Serialize() रिटर्न IHtmlContent ताकि आप Html.Raw() के लिए एक कॉल के साथ लपेट की जरूरत नहीं है।

<script> 
    var json = @Json.Serialize(Model.CollegeInformationlist); 
</script> 
संबंधित मुद्दे