簡體   English   中英

使用Newtonsoft.Json C#序列化數組

[英]Serialize array with 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結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM