2009-06-29 13 views
14

में जेएसओएन को सीरियलाइज करें आप सी # का उपयोग कर .NET 2.0 में किसी ऑब्जेक्ट को JSON में कैसे क्रमबद्ध कर सकते हैं?.NET 2.0

+0

क्या इस प्रश्न का उत्तर है? क्या इसे पाने के लिए एक बक्षीस की आवश्यकता है? – RichardTheKiwi

उत्तर

10

क्या आपने JSON.net को आजमाया था?

+0

एक सहायक विधि बनाना चाहते हैं जैसे आप .NET 3.5 में कर सकते हैं जाहिर है मेरे पास लाइब्रेरी स्कॉट का उल्लेख नहीं है लेकिन मैं अपना खुद का रोल करना चाहता हूं। मुझे लगता है कि किया जाने से आसान कहा जाएगा: http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method-using-net- 3-5.aspx – PositiveGuy

+0

आपका क्या मतलब है? यह वास्तव में आसान है ... – jfar

+2

काम पर हम .NET 2.0 के साथ फंस गए हैं और मैं json.net का उपयोग करता हूं, अच्छी तरह से काम करता है। –

1

JSON.org में कई भाषाओं में कई धारावाहिकों के संदर्भ हैं, जिनमें सी # में आधा दर्जन से अधिक शामिल हैं। आपको एलजीपीएल लाइसेंस और अच्छी तरह से डिज़ाइन किए गए Json.NET के साथ JSONsharp सहित आपकी एपीआई और लाइसेंसिंग आवश्यकताओं को पूरा करने में सक्षम होना चाहिए।

यदि आप जो क्रमबद्ध कर रहे हैं वह काफी सरल है, तो किसी विशिष्ट उद्देश्य के लिए स्वयं को लिखना मुश्किल नहीं है। JSON.org साइट पर वाक्यविन्यास है, और यह बहुत सीधी है।

+0

जेसन.NET का उपयोग नहीं कर सकता है, इसके लिए .NET 3.5 SP1 की आवश्यकता है। – PositiveGuy

+0

JSONsharp जो आप चाहते हैं वह होना चाहिए। यह एलजीपीएल है, जिसमें स्रोत शामिल है, ऑब्जेक्ट लेने और इसे क्रमबद्ध करने के लिए एक विवाद है, और केवल .NET 2.0 की आवश्यकता है। – lavinio

11

आप एएसपी.NET अजाक्स 1.0 से JavaScriptSerializer कक्षा का उपयोग कर सकते हैं, जो .NET 2.0 के साथ संगत है।

+0

उस ढांचे को स्थापित नहीं करेगा क्योंकि मैं एएसपी.NET AJAX नियंत्रणों का उपयोग नहीं कर रहा हूं। हम jQuery – PositiveGuy

+0

का उपयोग करते हैं यह एक सर्वर-साइड क्लास है। उस वर्ग का उपयोग करने के लिए आपको क्लाइंट-साइड कोड का उपयोग करने की आवश्यकता नहीं है। –

+0

हाँ, मुझे पता है। आपने मुझे यहां बेचा होगा क्योंकि हमारे पास .NET 3.5 – PositiveGuy

1

क्या आप .NET पक्ष में एक आरपीसी सर्वर बनाने की कोशिश कर रहे हैं? यदि ऐसा है तो जयरॉक (jayrock.berlios.de) देखें। आपको स्रोत कोड मिलता है और यह 2.0 के तहत संकलित होगा।

इसके अलावा एक RPC सर्वर की स्थापना करना बहुत आसान है:

using Jayrock; 
using Jayrock.JsonRpc; 
using Jayrock.JsonRpc.Web; 
using Jayrock.Json; 
using Jayrock.Json.Conversion; 


namespace myRPCService 
{ 
    [JsonRpcService("Service")] 
    public class Service : JsonRpcHandler 
    { 

     [JsonRpcMethod("call", Idempotent = true)] 
     public string call(string value) 
     { 
      JsonObject oJSON = JsonConvert.Import(typeof(JsonObject), value) as JsonObject; 
      ... 
      return oJSON.ToString(); 
     } 
    } 
} 
+0

बस हमारे लिए कॉल के माध्यम से जेएसओएन वापस करने की कोशिश कर रहा है।एएसएक्स पेज – PositiveGuy

-1

JSON संदेश के लिए मैं नीचे दिए गए कोड का उपयोग करें और मेरे लिए अच्छी तरह से काम करता है।

public static class JSONHelper 
{ 
    public static string ToJSON(this object obj) 
    { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     return serializer.Serialize(obj); 
    } 
} 

डब्ल्यूसीएफ में जेएसओएन सीरियलाइज़र को कॉल करना।

[OperationContract] 
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)] 
public string LoadDetails() 
{ 
    LogDetails objSubLog = new LogDetails(); 
    List<LogDetails> lstLogdetails; 
    DAL objDAL = new DAL(); 
    lstLogdetails = objDAL.GetLog("ALL", objSubLog); 
    return lstLogdetails.ToJSON(); 
} 
+0

यह बहुत उपयोगी था क्योंकि मैं साइटकोर के विरासत संस्करण के साथ मौजूदा निर्भरता के कारण जेसन.NET के हाल के संस्करण का उपयोग नहीं कर सका। –

+0

'जावास्क्रिप्टसेरियलाइज़र' .NET 2.0 https://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(v=vs.90).aspx – TarasB

+0

जावास्क्रिप्टसेरियलाइज़र उपलब्ध नहीं है .NET 2.0 में – Bogdan

1

मैं कुछ मामूली परिवर्तन के साथ सी # 2.0 के लिए System.Json की मोनो के कार्यान्वयन backport कर रहा था।

आपको here से 5 फ़ाइलें और here से जावास्क्रिप्ट रीडर.cs की आवश्यकता होगी।

ध्यान दें कि System.Json के साथ आपको मैन्युअल रूप से किसी भी गैर-आदिम डेटा प्रकार को क्रमबद्ध करना होगा। (देखें here)

संबंधित मुद्दे