using Newtonsoft.Json.Linq;
public static void Main()
""Name"": ""ActivityId"",
""Value"": ""a7868f8c-07ac-488d-a414-714527c2e76f""
""Value"": ""123 Main St""
Request req = JsonConvert.DeserializeObject<Request>(json);
Console.WriteLine("ActivityId: " + req.ActivityId);
Console.WriteLine("Address1: " + req.Address1);
[JsonConverter(typeof(NameValueConverter))]
public Guid ActivityId { get; set; }
public string Address1 { get; set; }
class NameValueConverter : JsonConverter
public override bool CanConvert(Type objectType)
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JObject obj = new JObject(
.Select(jo => new JProperty((string)jo["Name"], jo["Value"]))
object result = Activator.CreateInstance(objectType);
serializer.Populate(obj.CreateReader(), result);
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();