using System.Text.Json.Serialization;
using System.Collections.Generic;
public class BaseConfiguration
public string TenantID { get; set; } = string.Empty;
public string SisType { get; set; } = string.Empty;
public Dictionary<string, JsonElement>? ExtensionData { get; set; }
public BaseConfiguration()
public override string ToString() => $"{{\"tenantId\": \"{TenantID}\", \"sisType\":\"{SisType}\"}}";
const string jsonInput = """
"baseUrl": "https://example.com/",
"maxConnectionsPerSecond": 100,
"createdDatetime": "1900-01-01 00:00:00.0000",
public static void Main()
JsonSerializerOptions deserializationOptions = new JsonSerializerOptions()
PropertyNameCaseInsensitive = true
BaseConfiguration? deserialized = JsonSerializer.Deserialize<BaseConfiguration>(jsonInput, deserializationOptions);
Console.WriteLine(deserialized.ToString() + "\n");
JsonSerializerOptions serializationOptions = new JsonSerializerOptions()
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
Console.WriteLine("reserialized:");
Console.WriteLine(JsonSerializer.Serialize(deserialized, serializationOptions));