using Newtonsoft.Json.Linq;
public class ConnectionSummary
public ConnectionSummary(Connection connection)
this.ConnectionId = connection.Id;
this.SystemId = connection.SystemId;
[JsonProperty(PropertyName = "connectionId", Required = Required.Always)]
public string ConnectionId { get; set; }
[JsonProperty(PropertyName = "systemId")]
public string SystemId { get; set; }
[JsonProperty(PropertyName = "systemId", Required = Required.Always)]
public string SystemId { get; set; }
[JsonProperty(PropertyName = "id", Required = Required.Always)]
public string Id { get; set; }
public class ConnectionSummaryConverter : JsonConverter
public override bool CanConvert(Type objectType)
return objectType == typeof(ConnectionSummary);
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JObject jo = JObject.Load(reader);
Connection conn = new Connection
Id = (string)jo["connectionId"],
SystemId = (string)jo["systemId"]
return new ConnectionSummary(conn);
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();
public static void Main()
var json = "{\"connectionId\":\"id\",\"systemId\":\"sId\"}";
var deserial = JsonConvert.DeserializeObject<ConnectionSummary>(json, new ConnectionSummaryConverter());
Console.WriteLine("ConnectionId: " + deserial.ConnectionId);
Console.WriteLine("SystemId: " + deserial.SystemId);