using Newtonsoft.Json.Linq;
using System.Collections.Generic;
public static void Main()
JToken tok = JToken.Parse(jsonString);
var serializer = JsonSerializer.Create(new JsonSerializerSettings() {TypeNameHandling = TypeNameHandling.Objects });
Facet vg = tok.ToObject<Facet>(serializer);
string json = JsonConvert.SerializeObject(vg, new JsonConverter[] {new KeysJsonConverter()});
public string Facetx { get; set; }
public int Count { get; set; }
class KeysJsonConverter : JsonConverter
public KeysJsonConverter()
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
JObject o = new JObject();
IList<string> propertyNames = typeof(Facet).GetProperties().Select(fd => fd.).ToList();
o.AddFirst(new JProperty("Keys", new JArray(propertyNames)));
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
throw new NotImplementedException("");
public override bool CanRead
public override bool CanConvert(Type objectType)