こんにちは。
Windows10でWPFのアプリケーションを開発しています。
Visual Studio 2015 Communityを使っています。
###前提・実現したいこと
JSONをParseしたいです。
###試したこと
DynamicをClassを作ったところ、Parseに失敗しています。
###発生している問題・エラーメッセージ
型 'Newtonsoft.Json.JsonSerializationException' のハンドルされていない例外が mscorlib.dll で発生しました
追加情報:Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'memorytest.TodolyClass' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
###該当のソースコード
C#
1 public async Task<TodolyClass> GetAllItems() { 2 if (NeedAuth()) { 3 var tokenResponse = await client.GetAsync(TokenUri); 4 // TODO トークン取得後にExpirationTimeを取得してローカルに保存とかすればいいかと。 5 } 6 7 var response = await client.GetAsync(UriOfItems); 8 var resultString = await response.Content.ReadAsStringAsync(); 9 10 return JsonConvert.DeserializeObject<TodolyClass>(resultString); 11 } 12
Class
1 public class TodolyClass { 2 public int Id { get; set; } 3 public string Content { get; set; } 4 public int ItemType { get; set; } 5 public bool Checked { get; set; } 6 public int ProjectId { get; set; } 7 public int? ParentId { get; set; } 8 public string Path { get; set; } 9 public bool Collapsed { get; set; } 10 public object DateString { get; set; } 11 public int DateStringPriority { get; set; } 12 public string DueDate { get; set; } 13 public object Recurrence { get; set; } 14 public int ItemOrder { get; set; } 15 public int Priority { get; set; } 16 public DateTime LastSyncedDateTime { get; set; } 17 public object[] Children { get; set; } 18 public object DueDateTime { get; set; } 19 public DateTime CreatedDate { get; set; } 20 public DateTime? LastCheckedDate { get; set; } 21 public DateTime LastUpdatedDate { get; set; } 22 public bool Deleted { get; set; } 23 public string Notes { get; set; } 24 public bool InHistory { get; set; } 25 public object SyncClientCreationId { get; set; } 26 public bool? DueTimeSpecified { get; set; } 27 public int OwnerId { get; set; } 28 29 30 }
json
1[{"Id":9724830,"Content":"Todo.lyを得る。","ItemType":1,"Checked":false,"ProjectId":3630437,"ParentId":null,"Path":"","Collapsed":false,"DateString":null,"DateStringPriority":0,"DueDate":"","Recurrence":null,"ItemOrder":2,"Priority":4,"LastSyncedDateTime":"\/Date(1481021220171)\/","Children":[],"DueDateTime":null,"CreatedDate":"\/Date(1480751186017)\/","LastCheckedDate":null,"LastUpdatedDate":"\/Date(1480751186017)\/","Deleted":false,"Notes":"","InHistory":false,"SyncClientCreationId":null,"DueTimeSpecified":true,"OwnerId":586638}, 2{"Id":9724803,"Content":"Hover your mouse over a project or item and click the icon on the right side of the item for more options","ItemType":1,"Checked":true,"ProjectId":3630431,"ParentId":null,"Path":"","Collapsed":false,"DateString":null,"DateStringPriority":0,"DueDate":"","Recurrence":null,"ItemOrder":2,"Priority":4,"LastSyncedDateTime":"\/Date(1481021220171)\/","Children":[],"DueDateTime":null,"CreatedDate":"\/Date(1480745247697)\/","LastCheckedDate":"\/Date(1480745574707)\/","LastUpdatedDate":"\/Date(1480745574723)\/","Deleted":false,"Notes":"","InHistory":true,"SyncClientCreationId":null,"DueTimeSpecified":null,"OwnerId":586638}, 3{"Id":9724804,"Content":"Try to drag and reorder items","ItemType":1,"Checked":true,"ProjectId":3630431,"ParentId":null,"Path":"","Collapsed":false,"DateString":null,"DateStringPriority":0,"DueDate":"","Recurrence":null,"ItemOrder":3,"Priority":4,"LastSyncedDateTime":"\/Date(1481021220171)\/","Children":[],"DueDateTime":null,"CreatedDate":"\/Date(1480745247697)\/","LastCheckedDate":"\/Date(1480745579213)\/","LastUpdatedDate":"\/Date(1480745579213)\/","Deleted":false,"Notes":"","InHistory":true,"SyncClientCreationId":null,"DueTimeSpecified":null,"OwnerId":586638}]
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2015
Version 14.0.25424.00 Update 3
Microsoft .NET Framework
Version 4.6.01038
インストールしているバージョン:Community
Visual C# 2015 00322-20000-00000-AA575
Microsoft Visual C# 2015
です。
よろしくお願いします。
あわせて1481021220171はどうやってDateTimeにするものでしょう?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/06 11:30
2016/12/06 13:54
2016/12/06 14:20