2008-12-24 7 views
18

मुझे स्ट्रिंग में/से कुछ वस्तुओं को क्रमबद्ध/डी-क्रमबद्ध करने की आवश्यकता है और उन्हें केवल अपारदर्शी डेटा के रूप में स्थानांतरित करने की आवश्यकता है। मैं इसे करने के लिए XmlSerializer का उपयोग कर सकता हूं, लेकिन जेनरेट की गई स्ट्रिंग बेकार और लंबी लगती है। तो, क्या कोई संक्षिप्त सीरिएलाइज़र .NET में उपलब्ध है?क्या .NET बीसीएल में कोई ऑफ-द-शेल्फ जेसन सीरियलाइजेशन हेल्पर क्लास है?

मेरे दिमाग में आने वाली पहली बात यह है कि शायद .NET में JSON Serializer होना चाहिए, लेकिन मुझे यह नहीं मिल रहा है। संक्षिप्त स्ट्रिंग से ऑब्जेक्ट को कन्वर्ट करने के लिए .NET में कोई ऑफ-द-शेल्फ दृष्टिकोण है?

उत्तर

26

दो हैं;

पारंपरिक तरीके में

  • JavaScriptSerializer, वे, प्रत्येक-दूसरे के साथ 100% संगत नहीं हैं विशेष रूप से फिर से DateTime; डीसीजेएस एक शाब्दिक स्ट्रिंग (आईआईआरसी) का उपयोग करता है; जेएसएस new का उपयोग करता है - और न ही सही ढंग से tother को पढ़ सकता है।

    बेशक, अगर टेक्स्ट अपारदर्शी है, तो आप किसी भी संक्षिप्त बाइनरी सीरिएलाइज़र का उपयोग कर सकते हैं, और बस बेस -64 इसे एन्कोड कर सकते हैं; उदाहरण के लिए, protobuf-net सुंदर terse है। लेकिन JSON का उपयोग करके प्रत्येक छोर पर आवश्यक बाहरी कोड को कम कर देता है, इसलिए आपकी सर्वश्रेष्ठ शर्त भी हो सकती है।

  • +0

    है, जावास्क्रिप्ट Sererizer System.Web.Extensions.dll में है जो .NET 3.5 में उपलब्ध है, जरूरी नहीं है .NET 3.5 SP1। –

    +0

    आईआईआरसी, इसे अप्रचलित चिह्नित किया गया है और हाल ही में 3.5 एसपी 1 के साथ "अन-बहिष्कृत" किया गया है। –

    10

    Json.Net .NET के लिए एक JSON लाइब्रेरी है। यह कोडप्लेक्स में उपलब्ध है।

    0

    बस अपनी स्वयं एपीआई का उपयोग .. इसके json बनाने के लिए .. लेकिन आप यह भी JSON.NET तरह JSON पुस्तकालयों का उपयोग कर सकते हैं आसान ..

    खुश

    0

    JsonFx.NET कोडिंग एक खुला स्रोत serializer जो की अनुमति देता है है दृढ़ता से टाइप की गई कक्षाओं से/से क्रमबद्धता जो आप खोज रहे हैं। आप नियंत्रित कर सकते हैं कि धाराओं को क्रमबद्ध कैसे किया जाता है और धारावाहिकरण के कई पहलुओं को ओवरराइड किया जाता है। यह गुमनाम वस्तुओं के क्रमबद्धीकरण का समर्थन करके लिंक के साथ भी अच्छी तरह से बातचीत करता है। एपीआई सिर्फ .NET एक्सएमएल क्रमबद्धता की तरह काम करता है।

    4

    मैं एक बहुत तेजी से खुला JsonSerializer उपलब्ध स्रोत है कि, किसी भी POCO या DataContract प्रकार क्रमानुसार कर सकते हैं इंटरफेस अनाम और देर से बाध्य प्रकार सहित, आदि

    बेसिक उदाहरण

    var customer = new Customer { Name="Joe Bloggs", Age=31 }; 
    var json = JsonSerializer.SerializeToString(customer); 
    var fromJson = JsonSerializer.DeserializeFromString<Customer>(json); 
    
    MSDN के अनुसार
    संबंधित मुद्दे