У меня есть некоторые параметры в файле app.config
моего проекта. Я хочу сделать эти параметры максимально простыми для клиентов
<add key="name" value="Incognito"/>
<add key="emails[0].type" value="Personal"/>
<add key="emails[0].email" value="[email protected]"/>
Мне нужно сделать JSON из этих параметров. Сейчас я использую Dictionary
var parameters = new Dictionary<string, string>();
for (int i = 0; i < settings.Count; i++)
{
parameters.Add(settings.GetKey(i), settings[i]);
}
var jsonData = JsonConvert.SerializeObject(parameters);
В этом случае я получаю в результате:
{ "name": "Incognito", "emails[0].type": "Personal", "emails[0].email": "[email protected]" }
Но я хочу видеть обычный массив JSON:
{ "name": "Incognito", "emails": [{"type": "Personal", "email": "[email protected]"}, {...}] }
Как я могу это сделать? Как правильно сериализовать его? Или, может быть, вы знаете способ записи данных в app.config
в удобочитаемом формате?
Чтобы получить массив JSON, вам нужно использовать что-то более похожее на массив, скажем, возможно, Array
или List
типа, который имеет свойства type
и email
.
public class Parameters{
public string Name { get; set; }
public List<Email> Emails { get; set; }
}
public class Email{
public string Type { get; set; }
public string Email { get; set; }
}
Сериализация экземпляра Parameters
даст вам желаемую структуру JSON.