使用Newtonsoft.Json C#序列化数组

时间:2019-03-21 11:48:40

标签: c# arrays json json.net

我的项目的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写入数据的方法?

1 个答案:

答案 0 :(得分:2)

要获取JSON数组,您需要使用更类似于数组的内容,例如说一个Array和{{1}都类型的Listtype }属性。

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; } } 的实例将为您提供所需的JSON结构。