दिलचस्प पोस्ट
आरओआर में एक उपलब्धि प्रणाली को कैसे लागू किया जाए इनो सेटअप इंस्टॉलर से निष्पादित गैर-कार्यरत बैच फ़ाइल या कमांड को डिबग करना नियमित अभिव्यक्ति का उपयोग करने के लिए या नहीं? eof () बुरा अभ्यास? कैसे खोज इंजन AngularJS अनुप्रयोगों के साथ काम करते हैं? Maven "प्रतीक नहीं मिल सकता है" संदेश बेकार है एप्लिकेशन पूल पहचान प्रोग्राम को प्राप्त करें PHP ऑब्जेक्ट बनाम एरेज़ क्या Node.js देशी Promise.all प्रसंस्करण में समानांतर या क्रमिक रूप से? एक मशीन पर .NET ढाँचा के संस्करणों को वापस करने के लिए PowerShell स्क्रिप्ट? जावा और फ़ंक्शन के बीच अंतर क्या है? कुछ तकनीकी रूप से क्रमबद्ध इनपुट गुण serializable क्यों नहीं हैं? Eval का उपयोग करते हुए स्ट्रिंग से गणित अभिव्यक्ति की गणना करें HTML चपलता पैक – सामग्री को निकाले बिना अवांछित टैग को निकाल रहा है? विभिन्न पंक्ति लंबाई के साथ बहुआयामी arrays के आवंटन के लिए malloc का उपयोग करना

कैसे सी # में JSON स्ट्रिंग बनाने के लिए

मैंने कुछ एक्सएमएल को एक HTTP प्रतिक्रिया में वापस भेजने के लिए एक्सएमएलआरआईटर का उपयोग किया है आप एक JSON स्ट्रिंग कैसे बनाएंगे I मुझे लगता है कि आप JSON स्ट्रिंग बनाने और उन्हें JSON के रूप में आपकी प्रतिक्रिया को प्रारूपित करने के लिए केवल एक स्ट्रिंगबिल्ल्डर का उपयोग करेंगे?

वेब के समाधान से एकत्रित समाधान "कैसे सी # में JSON स्ट्रिंग बनाने के लिए"

आप JavaScriptSerializer वर्ग का उपयोग कर सकते हैं, एक उपयोगी एक्सटेंशन विधि बनाने के लिए इस आलेख की जांच करें ।

लेख से कोड:

namespace ExtensionMethods { public static class JSONHelper { public static string ToJSON(this object obj) { JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(obj); } public static string ToJSON(this object obj, int recursionDepth) { JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.RecursionLimit = recursionDepth; return serializer.Serialize(obj); } } } 

उपयोग:

 using ExtensionMethods; ... List<Person> people = new List<Person>{ new Person{ID = 1, FirstName = "Scott", LastName = "Gurthie"}, new Person{ID = 2, FirstName = "Bill", LastName = "Gates"} }; string jsonString = people.ToJSON(); 

Newtonsoft का प्रयोग। जेसन यह वास्तव में आसान बनाता है:

 Product product = new Product(); product.Name = "Apple"; product.Expiry = new DateTime(2008, 12, 28); product.Price = 3.99M; product.Sizes = new string[] { "Small", "Medium", "Large" }; string json = JsonConvert.SerializeObject(product); 

प्रलेखन: सीरियलाइज़िंग और डीएसईरायलिंग JSON

यह लाइब्रेरी JSON से सी # के लिए बहुत अच्छा है

http://james.newtonking.com/pages/json-net.aspx

यह कोड स्निपेट, डाटा। कॉन्ट्रैक्टजसन सेराइलाइजर, सिस्टम.रेंटाइम.Serialization.Json.NET 3.5 में उपयोग करता है।

 public static string ToJson<T>(/* this */ T value, Encoding encoding) { var serializer = new DataContractJsonSerializer(typeof(T)); using (var stream = new MemoryStream()) { using (var writer = JsonReaderWriterFactory.CreateJsonWriter(stream, encoding)) { serializer.WriteObject(writer, value); } return encoding.GetString(stream.ToArray()); } } 

Json-net.aspx प्रोजेक्ट के लिए http://www.codeplex.com/json/ पर एक नज़र डालें। क्यों पहिया फिर से आविष्कार?

आप अपने सर्विस स्टैक जेसनसीरियालाइजर की भी कोशिश कर सकते हैं, इस समय यह सबसे तेज़ एनएटी जेएसओएन सीरियलइज़र है। यह डेटाकॉन्ट्रैक्ट्स, किसी भी पीओसीओ प्रकार, इंटरफेस, गुमनाम प्रकार आदि सहित स्वर्गीय बाध्य वस्तुओं को धारावाहिक करने का समर्थन करता है।

मूल उदाहरण

 var customer = new Customer { Name="Joe Bloggs", Age=31 }; var json = JsonSerializer.SerializeToString(customer); var fromJson = JsonSerializer.DeserializeFromString<Customer>(json); 

नोट: यदि आप के लिए प्रदर्शन महत्वपूर्ण नहीं है, तो माइक्रोसॉफ्ट जावास्क्रिप्ट सर्टिलाइजर का उपयोग करें क्योंकि मुझे इसे अपने जैक्सन सीरियललाइजर्स की तुलना में 40x-100x धीमी गति से अपने बेंचमार्क से बाहर करना पड़ा है।

यदि आप दो अंतर्निहित जेएसओएन सीरियलइज़र ( जावास्क्रिप्टएरियलइज़र और डाटाकॉन्ट्रैक्टजसन सेरियलिजर ) का उपयोग नहीं कर सकते हैं या नहीं कर सकते हैं तो आप जेसनईएक्स सर्जरीकर्ता लाइब्रेरी की कोशिश कर सकते हैं – मैं इसे कई परियोजनाओं में उपयोग करता हूं और बहुत अच्छी तरह काम करता हूं।

यदि आपको जटिल परिणाम (एम्बेडेड) की आवश्यकता है तो अपना स्वयं का निर्माण करें:

 class templateRequest { public String[] registration_ids; public Data data; public class Data { public String message; public String tickerText; public String contentTitle; public Data(String message, String tickerText, string contentTitle) { this.message = message; this.tickerText = tickerText; this.contentTitle = contentTitle; } }; } 

और फिर आप कॉलिंग के साथ JSON स्ट्रिंग प्राप्त कर सकते हैं

 List<String> ids = new List<string>() { "id1", "id2" }; templateRequest request = new templeteRequest(); request.registration_ids = ids.ToArray(); request.data = new templateRequest.Data("Your message", "Your ticker", "Your content"); string json = new JavaScriptSerializer().Serialize(request); 

परिणाम इस तरह होगा:

 json = "{\"registration_ids\":[\"id1\",\"id2\"],\"data\":{\"message\":\"Your message\",\"tickerText\":\"Your ticket\",\"contentTitle\":\"Your content\"}}" 

आशा करता हूँ की ये काम करेगा!

यदि आप किसी वेब पेज पर JSON पर डेटा प्रदान करने के लिए एक वेब सेवा बनाने का प्रयास कर रहे हैं, तो एएसपी.नेट अजाक्स टूलकिट का उपयोग करने पर विचार करें:

http://www.asp.net/learn/ajax/tutorial-05-cs.aspx

यह स्वचालित रूप से अपनी वस्तुओं को वेबसाईट पर जेसन के लिए सेवा में परिवर्तित कर देगा और प्रॉक्सी क्लास का निर्माण करेगा जिसे आप उससे जुड़ने के लिए उपयोग कर सकते हैं।

DataContractJSONSerializer XMLSerializer के समान ही आपके लिए सबकुछ करेंगे। इसकी एक वेब ऐप में इसका उपयोग करने के लिए तुच्छ है यदि आप WCF का उपयोग कर रहे हैं, तो आप एक विशेषता के साथ इसका उपयोग निर्दिष्ट कर सकते हैं। डेटा कंट्रैक्ट्रेसेलाइजर परिवार भी बहुत तेज है।

मैंने पाया है कि आपको सीरियललाइज़र की ज़रूरत नहीं है। यदि आप वस्तु को सूची के रूप में वापस करते हैं मुझे एक उदाहरण का उपयोग करने दें

हमारे एएसएमएक्स में हम उस चर का उपयोग करते हुए डेटा प्राप्त करते हैं जो हमने पारित किया था

 // return data [WebMethod(CacheDuration = 180)] public List<latlon> GetData(int id) { var data = from p in db.property where p.id == id select new latlon { lat = p.lat, lon = p.lon }; return data.ToList(); } public class latlon { public string lat { get; set; } public string lon { get; set; } } 

तो jquery का उपयोग करते हुए हम उस चर तक पहुंचने वाली सेवा का उपयोग करते हैं।

 // get latlon function getlatlon(propertyid) { var mydata; $.ajax({ url: "getData.asmx/GetLatLon", type: "POST", data: "{'id': '" + propertyid + "'}", async: false, contentType: "application/json;", dataType: "json", success: function (data, textStatus, jqXHR) { // mydata = data; }, error: function (xmlHttpRequest, textStatus, errorThrown) { console.log(xmlHttpRequest.responseText); console.log(textStatus); console.log(errorThrown); } }); return mydata; } // call the function with your data latlondata = getlatlon(id); 

और हमें हमारी प्रतिक्रिया मिलती है

 {"d":[{"__type":"MapData+latlon","lat":"40.7031420","lon":"-80.6047970}]} 

एनकोड उपयोग

सामान्य ऑब्जेक्ट JSON Array EncodeJsObjectArray ()

 public class dummyObject { public string fake { get; set; } public int id { get; set; } public dummyObject() { fake = "dummy"; id = 5; } public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('['); sb.Append(id); sb.Append(','); sb.Append(JSONEncoders.EncodeJsString(fake)); sb.Append(']'); return sb.ToString(); } } dummyObject[] dummys = new dummyObject[2]; dummys[0] = new dummyObject(); dummys[1] = new dummyObject(); dummys[0].fake = "mike"; dummys[0].id = 29; string result = JSONEncoders.EncodeJsObjectArray(dummys); 

परिणाम: [[2 9, "माइक"], [5, "डमी"]]

सुंदर उपयोग

सुंदर प्रिंट JSON Array PrettyPrintJson () स्ट्रिंग एक्सटेंशन विधि

 string input = "[14,4,[14,\"data\"],[[5,\"10.186.122.15\"],[6,\"10.186.122.16\"]]]"; string result = input.PrettyPrintJson(); 

परिणाम है:

 [ 14, 4, [ 14, "data" ], [ [ 5, "10.186.122.15" ], [ 6, "10.186.122.16" ] ] ]