using System.Collections.Generic;
public static void Main()
Dictionary<string, string> dotNotation = new Dictionary<string, string>
{"Company.Website", "Hjemmeside"},
{"Company.TextHeaderPlaceholder", "Firmanavn"},
{"Company.User.Manager.Repositories.CreateAsync.ArgumentNullException.InvalidCompanyId", "firma id fejl"},
{"BookingSettings.HelpText", "Hjælpe tekst på webshop"},
{"BookingSettings.OnGoingOrderValidation.Text", "Bestillings validering i gang"},
{"BookingSettings.OnGoingOrderValidation.Created", "Oprettet"},
{"BookingSettings.Url", "Kundelink til booking"}
var betterDictionary = DotNotationToDictionary(dotNotation);
var json = JsonConvert.SerializeObject(betterDictionary);
public static Dictionary<string, object> DotNotationToDictionary(Dictionary<string, string> dotNotation)
Dictionary<string, object> dictionary = new Dictionary<string, object>();
foreach (var dotObject in dotNotation)
var hierarcy = dotObject.Key.Split('.');
Dictionary<string, object> bottom = dictionary;
for (int i = 0; i < hierarcy.Length; i++)
if (i == hierarcy.Length - 1)
bottom.Add(key, dotObject.Value);
if (!bottom.ContainsKey(key))
bottom.Add(key, new Dictionary<string, object>());
bottom = (Dictionary<string, object>) bottom[key];