मैं कुछ JSON डेटा जो इस तरह दिखता है के साथ JSON.NET में JSON के माध्यम से पार्स:अज्ञात संपत्ति के नाम
{
"response":{
"_token":"StringValue",
"code":"OK",
"user":{
"userid":"2630944",
"firstname":"John",
"lastname":"Doe",
"reference":"999999999",
"guid":"StringValue",
"domainid":"99999",
"username":"jdoe",
"email":"[email protected]",
"passwordquestion":"",
"flags":"0",
"lastlogindate":"2013-02-05T17:54:06.31Z",
"creationdate":"2011-04-15T14:40:07.22Z",
"version":"3753",
"data":{
"aliasname":{
"$value":"John Doe"
},
"smsaddress":{
"$value":"[email protected]"
},
"blti":{
"hideemail":"false",
"hidefullname":"false"
},
"notify":{
"grades":{
"$value":"0"
},
"messages":{
"$value":"1"
}
},
"beta_component_courseplanexpress_1":{
"$value":"true"
}
}
}
}
मैं JSON.NET साथ सी # का उपयोग कर रहा डेटा के माध्यम से पार्स करने के लिए। मैं सफलतापूर्वक इस कलन विधि का उपयोग डेटा प्राप्त कर लिया है:
User MyUser = new User();
JToken data = JObject.Parse(json);
MyUser.FirstName = (string) data.SelectToken("response.user.firstname");
//The same for all the other properties.
समस्या data
क्षेत्र के साथ है। यह फ़ील्ड ज्यादातर उपयोगकर्ता प्राथमिकताओं पर आधारित है और डेटा का उपयोग केवल तभी किया जाता है जब इसका उपयोग किया जाता है। खेत सभी कस्टम हैं और डेवलपर्स जितना चाहें उतने प्रतिबंध लगा सकते हैं। अनिवार्य रूप से, यह सभी मुफ्त फॉर्म डेटा है। साथ ही आप ध्यान देते हैं कि उन्हें डेटा के साथ वास्तव में घोंसला जा सकता है।
MyUser.Data = JsonConvert.DeserializeObject<List<JToken>>((string) data.SelectToken("response.user.data");
जो काम नहीं करता:
मैं चलाने के लिए कोशिश की है।
सी # ऑब्जेक्ट में इसका उपयोग करने के लिए आप इसे कैसे परिवर्तित करेंगे?
@KenKin वर्तमान में मैं डेटा स्टोर करने के लिए एक शब्दकोश देख रहा हूं। अन्य सदस्य चर केवल स्ट्रिंग गुण हैं जो MyUser.FirstName के माध्यम से एक्सेस करना वास्तव में आसान बनाते हैं। प्रश्न वास्तव में जेएसओएन के 'डेटा' हिस्से पर ध्यान केंद्रित करता है, शेष संदर्भ के लिए पूरी तरह से वहां है। – claydiffrient