मैं आने वाले कच्चे JSON पर गतिशील deserialisation करने के लिए न्यूटॉन्सॉफ्ट JSON लाइब्रेरी का उपयोग कर रहा हूं और कुछ ऐसा पाया है जिसे मैं समझा नहीं सकता।न्यूटॉन्सॉफ्ट JSON - डायनामिक ऑब्जेक्ट्स
{
"task": {
"dueDate": "2012-12-03T00:00:00"
}
}
कुछ भी नहीं है वहाँ बहुत जटिल ...
कोड में मैं तो यह कर रहा हूं:
प्रारंभिक बिंदु निम्नलिखित JSON स्ट्रिंग है
var dyn = JsonConvert.DeserializeObject<dynamic>(rawJson);
DateTime dueDate = dyn.task.dueDate.Value;
इस कोड को कर दिया गया है महीनों के लिए जगह में और ठीक काम करता है, हालांकि हाल के परीक्षण में हम निम्नलिखित त्रुटि देख रहे थे:
,DateTime dueDate = dyn.task.dueDate.Value;
को
DateTime dueDate = dyn["task"]["dueDate"].Value;
इसलिए हालांकि यह मैं "निर्धारित" है: 210
'Newtonsoft.Json.Linq.JObject' does not contain a definition for 'task'
Stack Trace: at CallSite.Target(Closure , CallSite , Object) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
अब इस जहां है अजीब हो जाता है, सब कुछ फिर से काम करने के लिए अगर मैं से ऊपर कोड बदलने शुरू होता है समझ में नहीं आता कि यह क्यों ठीक करता है और संभावित कारण क्या हो सकता है। किसी को भी किसी भी विचार
है
क्या आपने जेसन.नेट का संस्करण बदल दिया है जिसका आप उपयोग कर रहे हैं? –
नहीं, यह मेरा पहला विचार था - कोड और लाइब्रेरी दोनों में परिवर्तन इतिहास को देखते हुए लाइव – MrEyes
में क्या (और काम कर रहा है) में कोई बदलाव नहीं दिखाता है क्या आप वाकई "पहला मौका अपवाद" नहीं हैं - सामान्य गतिशीलता (हो सकता है कि आपने अपनी त्रुटि लॉगिन आदि में विवरण स्तर बढ़ाया हो)? – tpeczek