using System.Text.Json.Serialization;
const string JsonSample = @"{
""Department.Id"":""28699787678679"",
""Department.Name"":""IT"",
""Address.City"":""SomeCity"",
""Address.State"":""SomeState"",
""Address.ZipCode"":""29220""
public static void Main()
var deser = JsonSerializer.Deserialize<EmployeeSer>(JsonSample);
var json = JsonSerializer.Serialize(ser);
public string Name { get; set; }
public Department Department { get; set; }
public Address Address { get; set; }
Console.WriteLine($"Name:\t{Name}");
Console.WriteLine("Department:");
Console.WriteLine($"\tID:\t{Department.Id}");
Console.WriteLine($"\tName:\t{Department.Name}");
Console.WriteLine("Address:");
Console.WriteLine($"\tCity:\t{Address.City}");
Console.WriteLine($"\tState:\t{Address.State}");
Console.WriteLine($"\tZipCode:\t{Address.ZipCode}");
public string Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
[JsonPropertyName("Name")]
public string Name { get; set; }
[JsonPropertyName("Department.Id")]
public string DeptId { get; set; }
[JsonPropertyName("Department.Name")]
public string DeptName { get; set; }
[JsonPropertyName("Address.City")]
public string AddrCity { get; set; }
[JsonPropertyName("Address.State")]
public string AddrState { get; set; }
[JsonPropertyName("Address.ZipCode")]
public string AddrZip { get; set; }
public static implicit operator Employee(EmployeeSer source)
Department = new Department
State = source.AddrState,
ZipCode = source.AddrZip,
public static implicit operator EmployeeSer(Employee source)
DeptId = source.Department?.Id,
DeptName = source.Department?.Name,
AddrCity = source.Address?.City,
AddrState = source.Address?.State,
AddrZip = source.Address?.ZipCode,