2012-02-29 19 views
13

क्या कोई तरीका है कि मैं JSON.Net से क्रमबद्ध आउटपुट में स्वचालित रूप से टिप्पणियां जोड़ सकता हूं?मैं जेसन.नेट आउटपुट में टिप्पणियां कैसे जोड़ूं?

आदर्श रूप में मैं इसे निम्न जैसा कुछ है कल्पना:

public class MyClass 
{ 
    [JsonComment("My documentation string")] 
    public string MyString { get; set; } 
} 

या (और भी बेहतर एनोटेशन से बचा जा सकता है, तो):

public class MyClass 
{ 
    /// <summary> 
    /// My documentation string 
    /// </summary> 
    public string MyString { get; set; } 
} 

कि उत्पादन होगा:

{ 
    //My documentation string 
    "MyString": "Test" 
} 

कारण मैं पूछता हूं कि हम कॉन्फ़िगरेशन को क्रमबद्ध करने के लिए जेसन.NET का उपयोग करते हैं फ़ाइल जिसे बाद में हाथ से बदला जा सकता है। मैं अपने सी # कॉन्फ़िगरेशन कक्षाओं में प्रलेखन शामिल करना चाहता हूं और जेएसओएन में पुन: उत्पन्न करना चाहता हूं ताकि जो भी बाद में फ़ाइल को बदलना पड़े।

अद्यतन: RoToRa नीचे बताते हैं के रूप में, टिप्पणियाँ तकनीकी रूप से JSON कल्पना में अनुमति नहीं है (http://www.json.org पर काम वाक्य रचना चित्र देखें)। हालांकि, Json.NET site पर सुविधाएँ तालिका में शामिल हैं:

पढ़ने और टिप्पणियां लिख

और Newtonsoft.Json.JsonTextWriter.WriteComment(string) जो एक टिप्पणी उत्पादन करता है मौजूद है समर्थन करता है। मुझे सीधे JsonTextWriter का उपयोग करने के बजाय टिप्पणियां बनाने के एक साफ तरीके से रूचि है।

+0

@JamesNewtonKing इस योजना या वर्तमान में उपलब्ध कुछ भी है? – nikeee

उत्तर

5

जेसन.NET JsonSerializer क्रमबद्ध होने पर स्वचालित रूप से टिप्पणियां आउटपुट नहीं करता है। यदि आप टिप्पणियां चाहते हैं तो आपको JSONTextWriter या LINQ से JSON का उपयोग करके मैन्युअल रूप से JSON लिखना होगा।

+5

@ जेम्स न्यूटनकिंग मैंने 'जेसनप्रोपर्टी' (और 'जेसनप्रोपर्टी एट्रिब्यूट') में 'टिप्पणी' संपत्ति जोड़ने के लिए नवीनतम जेसन.NET को एक छोटा पैच लिखा है। विचार यह है कि 'SerializeMemberInfo' के दौरान यदि 'टिप्पणी' शून्य/खाली नहीं है तो यह JSON में कुंजी/मान जोड़ी से ऊपर लिखा जाता है। इससे पहले कि मैं आगे बढ़ूं और इसे पूरा कर सकूं, क्या आप उसमें रुचि रखते हैं? –

+1

मैं इसे देख लूँगा और देख सकता हूं कि आपने इसे कैसे किया है और मुझे लगता है कि यह दूसरों के लिए उपयोगी होगा - http://json.codeplex.com/SourceControl/list/patches/upload –

+1

@AdamRodger क्या आप अभी भी पैच है? मुझे यह ऑनलाइन नहीं मिल रहा है। – nikeee

4

समस्या यह है कि फ़ाइल प्रारूप के रूप में JSON टिप्पणियों का समर्थन नहीं करता है। एक चीज जो आप कर सकते हैं - यदि JSON फ़ाइल पढ़ने वाला एप्लिकेशन इसे अनुमति देता है - इस प्रश्न में सुझाए गए टिप्पणियों के रूप में अतिरिक्त गुणों का उपयोग करना है: Can comments be used in JSON?

2

जैसा कि @RoToRa पहले से ही कहा गया है, JSON टिप्पणियों की अनुमति नहीं देता है।

यदि आप अभी भी टिप्पणियां चाहते हैं, और आप सही JSON आउटपुट करना चाहते हैं, तो आप डेटा लेआउट को बदलकर वास्तविक JSON डेटा का टिप्पणियां ही बना सकते हैं। उदाहरण के लिए:

{ 
    "MyString": { 
     "doc": "My documentation string", 
     "value": "Test" 
    } 
} 
संबंधित मुद्दे