私はJSon、特にJSon.Netを初めて使用します。Windows PhoneでLiveSDKを使用しようとしていますが、JSon応答の解析に問題があります。カレンダー情報を読み込もうとしていますが、解析できません。以下は、Jsonとクラス定義をダウンロードするためのコードです。'user'を定義する行で例外が発生します。
void getCal_DownloadCompleted(object sender, LiveDownloadCompletedEventArgs e)
{
if (e.Error == null)
{
using (var reader = new StreamReader(e.Result))
{
var json = reader.ReadToEnd();
var user = JsonConvert.DeserializeObject<Calendar>(json);
}
}
}
私のカレンダークラス
[JsonObject(MemberSerialization.OptIn)]
public class Calendar
{
[JsonProperty(PropertyName="name")]
public string Name{get; set;}
[JsonProperty(PropertyName = "id")]
public string Id{get; set;}
[JsonProperty(PropertyName = "description")]
public string Description{get; set;}
[JsonProperty(PropertyName = "created_time")]
public string CreatedTime{get; set;}
[JsonProperty(PropertyName = "updated_time")]
public string UpdatedTime{get; set;}
[JsonProperty(PropertyName = "from")]
public object From{get; set;}
[JsonProperty(PropertyName = "is_default")]
public bool IsDefault{get; set;}
[JsonProperty(PropertyName = "subscription_location")]
public string SubscriptionLocation{get; set;}
[JsonProperty(PropertyName = "permissions")]
public string Permissions{get; set;}
}
受信したJSon形式
{
"data": [
{
"id": "calendar.42d4dbc866f94c83849c88c6eb9985bc",
"name": "Birthday calendar",
"description": "If you have birthdays listed for your contacts, they'll appear on this calendar. You can add more birthdays, but you can't add other types of events.",
"created_time": "2011-08-05T19:41:04+0000",
"updated_time": "2011-08-05T19:41:04+0000",
"from": {
"name": null,
"id": null
},
"is_default": false,
"subscription_location": null,
"permissions": "read"
},{
...
}
]}
LiveSDK GetAsync()を使用することができなかったので、代わりにDownloadAsync()を使用しました。このアプローチはより良いですか?
ありがとう