次のようなJSONデータがあります。
{
"response":{
"_token":"StringValue",
"code":"OK",
"user":{
"userid":"2630944",
"firstname":"John",
"lastname":"Doe",
"reference":"999999999",
"guid":"StringValue",
"domainid":"99999",
"username":"jdoe",
"email":"jdoe@jdoe.edu",
"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":"5555555555@messaging.sprintpcs.com"
},
"blti":{
"hideemail":"false",
"hidefullname":"false"
},
"notify":{
"grades":{
"$value":"0"
},
"messages":{
"$value":"1"
}
},
"beta_component_courseplanexpress_1":{
"$value":"true"
}
}
}
}
データを解析するためにJSON.NETでC#を使用しています。私はこのアルゴリズムを使用してデータを正常に取得することができました:
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");
これは機能しません。
C#オブジェクトで使用するためにどのように変換しますか?