public string Field1 {get;set;}
public string Field2 {get;set;}
public SubModel SubModel {get;set;}
public dynamic Payload {get;set;}
public static void Main()
DataModel model = new DataModel() {
SubModel = new SubModel() {
Console.WriteLine(JsonConvert.SerializeObject(model));
string json = @"{""SubModel"":{""Field1"":""hello"",""Field2"":""world""},""Payload"":{""Author"":""Albert"",""BookCount"":3,""LastSeen"":""2022-09-20T13:01:52.9953791+00:00""}}";
DataModel newModel = JsonConvert.DeserializeObject<DataModel>(json);
Console.WriteLine($"SubModel.Field1 {newModel.SubModel.Field1}");
Console.WriteLine($"SubModel.Field2 {newModel.SubModel.Field2}");
Console.WriteLine($"Payload.Author {newModel.Payload.Author}");
Console.WriteLine($"Payload.BookCount {newModel.Payload.BookCount}");
Console.WriteLine($"Payload.LastSeen {newModel.Payload.LastSeen}");