You can write some custom class to modify your response by Overriding JsonConverter by newtonsoft.
So, your custom class should be something like this,
public class CustomTimeConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeof(DateTime);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var date = (DateTime)value;
writer.WriteValue(date.ToString("HH:mm:ss"));
}
}
here you don't need to implement the ReadJson()
, because it's used to deserialize JSON data into an object and CustomTimeConverter
is only used to serialize DateTime
objects to JSON.
Your response class should be like this,
public class ResponseClass
{
public string CompanyName { get; set; }
public bool IsVerified { get; set; } = false;
[JsonConverter(typeof(CustomTimeConverter))]
public DateTime permissionStartDate { get; set; }
[JsonConverter(typeof(CustomTimeConverter))]
public DateTime permissionEndDate { get; set; }
}
This is a sample code snippet to test the above implementation.
static void Main(string[] args)
{
var entity = new ResponseClass
{
CompanyName = "stackoverflow",
IsVerified = true,
permissionStartDate = new DateTime(2023, 1, 5, 12, 0, 0),
permissionEndDate = new DateTime(2023, 1, 5, 15, 0, 0)
};
var json = JsonConvert.SerializeObject(entity , Formatting.Indented);
Console.WriteLine(json);
}
and output is:
{
"CompanyName": "stackoverflow",
"IsVerified": true,
"permissionStartDate": "12:00:00",
"permissionEndDate": "15:00:00"
}