我在项目的文件中app.config
有一些参数。 我想为客户尽可能简单地做这些参数
<add key="name" value="Incognito"/>
<add key="emails[0].type" value="Personal"/>
<add key="emails[0].email" value="abc@abc.com"/>
我需要从这些参数中执行 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": "abc@abc.com" }
但我想看看通常的 JSON 数组:
{ "name": "Incognito", "emails": [{"type": "Personal", "email": "abc@abc.com"}, {...}] }
我该怎么做?如何正确序列化它?或者,也许您知道一种以人类可读格式以app.config
写入数据的方法?
要获得一个 JSON 数组,你需要使用更像数组的东西,比如一个同时具有type
和email
属性的类型的Array
或List
。
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 结构。