2010-10-27 18 views
5

को एक JSON ऑब्जेक्ट का हिस्सा deserializing मैं इस तरह JSON है:JSON.NET: एक शब्दकोश

{ 
    "Property":"Blah blah", 
    "Dictionary": { 
     "Key1" : "Value1", 
     "Key2" : "Value2", 
     "Key3" : "Value3" 
    } 
} 

मैं (एक शब्दकोश के रूप में "शब्दकोश" वस्तु निकालना चाहते हैं तो यह कुंजी 1 की तरह होगा = > वैल्यू 1, आदि)। अगर मैं सिर्फ "शब्दकोश" वस्तु सीधे थी, मैं इस्तेमाल कर सकते हैं:

JsonConvert.DeserializeObject<Dictionary<string, string>> 

सबसे अच्छा तरीका है एक शब्दकोश के रूप में सिर्फ शब्दकोश संपत्ति प्राप्त करने के लिए क्या है?

अग्रिम धन्यवाद! टिम

उत्तर

10

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

काफी सरल; मैंने आंतरिक डेटा प्राप्त करने के लिए इन पंक्तियों के साथ कुछ किया:

var jObj = JObject.Parse(jsonText); 
var innerJObj = JObject.FromObject(jObj["Dictionary"]); 

अच्छी तरह से काम करता है।

+0

आप आंतरिक jObj (टाइप 'जॉब्जेक्ट') से एक शब्दकोश में कैसे जाते हैं? – Brendan

1

मुझे लगता है कि आपको JSON को पार्स करना होगा और बाहरी ऑब्जेक्ट को हटाना होगा। आप यह निर्धारित कर सकते हैं कि आप किस प्रकार की वस्तु को deserializing कर रहे हैं, लेकिन यह कहने का कोई तरीका नहीं है कि बाहरी वस्तु को deserialize नहीं है।

+0

आंतरिक JSON पर जाने का सबसे अच्छा तरीका विचार? स्ट्रिंग पार्सिंग/रेगेक्स, या क्या कुछ JSON.NET-प्रदत्त विधि है? –

0

संदर्भ के लिए, your answer(de)serialize json fragments पर है। answered here, लेकिन आपका समाधान अधिक संक्षिप्त दिखता है। प्रदर्शन मतभेदों के बारे में उत्सुक ...