public static T CreateObject <T>(this JObject o, object objectId) { var token = o.SelectToken("Id"); if (token == null) { return(o.Append("Id", objectId).ToObject <T>()); } token.Replace(JToken.FromObject(objectId)); return(o.ToObject <T>()); }