ओवरराइड करता है तो मेरे पास जटिल व्यावसायिक ऑब्जेक्ट्स का एक सेट है जिसे मैं वेब सेवा में उपयोग के लिए जेसन को क्रमबद्ध करना चाहता हूं। मैं वर्तमान में जेसन के उत्पाद के लिए DataContractJsonSerializer का उपयोग कर रहा हूं, लेकिन यह deserialization पर balks क्योंकि डिफ़ॉल्ट XmlReader बेस 64 तारों को संभाल नहीं सकता है।JSON.NET serialization यदि ToString
पढ़ने के बाद कई जेसननेट की सकारात्मक समीक्षा, मैंने इसे एक कोशिश देने का फैसला किया। हैरानी की बात है कि यदि सबसे आसान मामला ToString() विधि को ओवरराइड करता है तो सबसे आसान मामला ग़लत आउटपुट उत्पन्न करता है। JSON उत्पन्न करने के बजाय, यह केवल स्ट्रिंग मान को उत्सर्जित करता है।
उदाहरण के लिए, निम्न कथन केवल एक स्ट्रिंग उत्पन्न करता है, क्योंकि धारावाहिक वस्तु को एक साधारण स्ट्रिंग के रूप में देखने के लिए प्रतीत होता है।
public class MyClass {
public string Title{get;set;}
public override ToString(){ return Title; }
public string ToJson(){
return JsonConvert.SerializeObject(this);
}
}
जेसन स्वरूपित आउटपुट के बजाय, मुझे शीर्षक स्ट्रिंग मिलती है। क्या मुझे इससे बचने के लिए ऑब्जेक्ट को किसी विशेष तरीके से चिह्नित करना है? चूंकि व्यापार ऑब्जेक्ट पदानुक्रम में कई ऑब्जेक्ट्स शामिल हैं जो ToString() को ओवरराइड करते हैं, मैं विशेष विशेषताओं, आदि को पेश करने से बचाना चाहूंगा।
आपका कोड काम करता है ठीक है, केवल 'ToString' विधि में एक चीज़ 'ToJson' को कॉल करें। –