using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
""WikiId"": ""83981284-0AD3-4420-90AB-15E3BF6BD7B7"",
""CreatedOn"": ""2017-08-07T09:16:06.08"",
Wiki wiki = JsonConvert.DeserializeObject<Wiki>(json);
Console.WriteLine("WikiText: " + wiki.WikiText);
Console.WriteLine("Tags: " + wiki.Tags.Count());
class IgnoreEmptyArrayItemsConverter : JsonConverter
public override bool CanConvert(Type objectType)
bool result = objectType.IsAssignableFrom(typeof(List<>));
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
var tokenIndexesToRemove = new List<int>();
var array = JArray.Load(reader);
for (int i = 0; i < array.Count; i++)
tokenIndexesToRemove.Add(i);
foreach (int index in tokenIndexesToRemove)
var result = array.ToObject(objectType, serializer);
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();
public Guid? TagId { get; set; }
public string TagText { get; set; }
public DateTime CreatedOn { get; set; }
public Guid? WikiId { get; set; }
public string WikiText { get; set; }
public string Title { get; set; }
public DateTime CreatedOn { get; set; }
[JsonConverter(typeof(IgnoreEmptyArrayItemsConverter))]
public HashSet<Tag> Tags { get; set; }