From 67c48839d9bb20ce8e6372e54e31cf3146a7e9ff Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Tue, 19 Nov 2013 19:30:59 +0100 Subject: [PATCH] fixes #12 Update ObjectToArrayConverter to return null when JObject cannot be created --- PocketSharp/Models/PocketItem.cs | 2 +- PocketSharp/Models/Response/Retrieve.cs | 5 +++-- PocketSharp/Utilities/JsonExtensions.cs | 22 +++++++++++++++++++++- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/PocketSharp/Models/PocketItem.cs b/PocketSharp/Models/PocketItem.cs index 596a2f7..492aa43 100644 --- a/PocketSharp/Models/PocketItem.cs +++ b/PocketSharp/Models/PocketItem.cs @@ -1,7 +1,7 @@ using Newtonsoft.Json; +using PropertyChanged; using System; using System.Collections.Generic; -using PropertyChanged; namespace PocketSharp.Models { diff --git a/PocketSharp/Models/Response/Retrieve.cs b/PocketSharp/Models/Response/Retrieve.cs index 9a8a30d..b89db04 100644 --- a/PocketSharp/Models/Response/Retrieve.cs +++ b/PocketSharp/Models/Response/Retrieve.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; using System.Collections.Generic; namespace PocketSharp.Models @@ -24,8 +25,8 @@ namespace PocketSharp.Models /// /// The since. /// - [JsonProperty] - public int Since { get; set; } + [JsonProperty("since")] + public DateTime Since { get; set; } /// /// Gets the items. diff --git a/PocketSharp/Utilities/JsonExtensions.cs b/PocketSharp/Utilities/JsonExtensions.cs index 82203ee..6b37abc 100644 --- a/PocketSharp/Utilities/JsonExtensions.cs +++ b/PocketSharp/Utilities/JsonExtensions.cs @@ -111,10 +111,25 @@ namespace PocketSharp { public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { + JObject jObject; List result = new List(); - JObject jObject = JObject.Load(reader); T target; + // object is an array + if (reader.TokenType == JsonToken.StartArray) + { + return serializer.Deserialize>(reader); + } + + try + { + jObject = JObject.Load(reader); + } + catch + { + return null; + } + // Populate the object properties foreach (KeyValuePair item in jObject) { @@ -126,6 +141,11 @@ namespace PocketSharp return result; } + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + throw new NotImplementedException(); + } + public override List Create(Type objectType) { return new List();