// Root myDeserializedClass = JsonConvert.DeserializeObject(myJsonResponse); public class Awesomeobject { [JsonConstructor] public Awesomeobject( [JsonProperty("SomeProps1")] int someProps1, [JsonProperty("SomeProps2")] string someProps2 ) { this.SomeProps1 = someProps1; this.SomeProps2 = someProps2; } [JsonProperty("SomeProps1")] public int SomeProps1 { get; } [JsonProperty("SomeProps2")] public string SomeProps2 { get; } } public class Class1 { [JsonConstructor] public Class1( [JsonProperty("id")] int id, [JsonProperty("user_id")] string userId, [JsonProperty("awesomeobject")] Awesomeobject awesomeobject, [JsonProperty("created_at")] string createdAt, [JsonProperty("updated_at")] string updatedAt, [JsonProperty("users")] List users ) { this.Id = id; this.UserId = userId; this.Awesomeobject = awesomeobject; this.CreatedAt = createdAt; this.UpdatedAt = updatedAt; this.Users = users; } [JsonProperty("id")] public int Id { get; } [JsonProperty("user_id")] public string UserId { get; } [JsonProperty("awesomeobject")] public Awesomeobject Awesomeobject { get; } [JsonProperty("created_at")] public string CreatedAt { get; } [JsonProperty("updated_at")] public string UpdatedAt { get; } [JsonProperty("users")] public IReadOnlyList Users { get; } } public class Class2 { [JsonConstructor] public Class2( [JsonProperty("SomePropertyOfClass2")] string somePropertyOfClass2 ) { this.SomePropertyOfClass2 = somePropertyOfClass2; } [JsonProperty("SomePropertyOfClass2")] public string SomePropertyOfClass2 { get; } } public class Root { [JsonConstructor] public Root( [JsonProperty("Class1")] Class1 class1, [JsonProperty("Class2")] Class2 class2 ) { this.Class1 = class1; this.Class2 = class2; } [JsonProperty("Class1")] public Class1 Class1 { get; } [JsonProperty("Class2")] public Class2 Class2 { get; } } public class User { [JsonConstructor] public User( [JsonProperty("id")] string id, [JsonProperty("name")] string name, [JsonProperty("created_at")] string createdAt, [JsonProperty("updated_at")] string updatedAt, [JsonProperty("email")] string email, [JsonProperty("testanadditionalfield")] string testanadditionalfield ) { this.Id = id; this.Name = name; this.CreatedAt = createdAt; this.UpdatedAt = updatedAt; this.Email = email; this.Testanadditionalfield = testanadditionalfield; } [JsonProperty("id")] public string Id { get; } [JsonProperty("name")] public string Name { get; } [JsonProperty("created_at")] public string CreatedAt { get; } [JsonProperty("updated_at")] public string UpdatedAt { get; } [JsonProperty("email")] public string Email { get; } [JsonProperty("testanadditionalfield")] public string Testanadditionalfield { get; } }