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



我在项目的文件中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 数组,你需要使用更像数组的东西,比如一个同时具有typeemail属性的类型的ArrayList

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 结构。

相关内容

  • 没有找到相关文章

最新更新