मैं एक डब्ल्यूसीएफ सेवा का उपभोग कर रहा हूं जो 'डी' रूट तत्व के अंदर जेएसओएन परिणाम लपेटता है। JSON उत्तर इस तरह दिखता है:जेएसओएन deserializing - मूल तत्व को अनदेखा कैसे करें?
{"d":[
{
"__type":"DiskSpaceInfo:#Diagnostics.Common",
"AvailableSpace":38076567552,
"Drive":"C:\\",
"TotalSpace":134789197824
},
{
"__type":"DiskSpaceInfo:#Diagnostics.Common",
"AvailableSpace":166942183424,
"Drive":"D:\\",
"TotalSpace":185149157376
}
]}
मैं गतिशील लेखन का उपयोग नहीं करना चाहते हैं, मैं अपने वर्ग Diagnostics.Common.DiskSpaceInfo है कि मैं जब deserializing उपयोग करना चाहते हैं।
मैं जेसन.NET (नेटवॉन्सॉफ्ट JSON) का उपयोग कर रहा हूं।
सवाल यह है कि रूट तत्व ('डी' तत्व) को अनदेखा करने के लिए इसे कैसे बताना है और अंदर क्या है।
DiskSpaceInfo[] result = JsonConvert.DeserializeAnonymousType(json, new
{
d = new DiskSpaceInfo[0]
}).d;
यह वास्तव में काम करता है लेकिन मैं इसे बहुत पसंद नहीं है:
सबसे अच्छा समाधान मैं अब तक है एक गुमनाम प्रकार का उपयोग करने के लिए है। क्या कोई और तरीका है? क्या मैं चाहते हैं की तरह कुछ:
DiskSpaceInfo[] result = JsonConvert.Deserialize(json, skipRoot: true);
या ऐसा ही कुछ ...
+1 क्योंकि मैं अपने गुमनाम प्रकार समाधान की तरह। –
संबंधित प्रश्न जो पूछता है कि मध्यवर्ती 'जेटोकन' को पार्स किए बिना इसे कैसे किया जाए: [JSON.NET एक विशिष्ट संपत्ति को deserialize] (https://stackoverflow.com/questions/19438472/json-net-deserialize-a- विशिष्ट- संपत्ति)। – dbc