簡體   English   中英

如何將 JSON object 列表序列化到文件中,其中 c# 不是數組

[英]how to serialize JSON object lists into file with c# not array

我在這里有這段代碼,可以將一段 JSON 添加到文件中,但是它沒有使用 [] 來創建一個數組,從而破壞了我的文件的讀取方式。

var serverid = ctx.Guild.Id.ToString();
List<data> _data = new List<data>();
_data.Add(new data() {
    mute = $"{Role.Name}"
});
string json = JsonConvert.SerializeObject(_data.ToList());
File.WriteAllText(@$".\serverconfigs\{serverid}.json", json);

這不是有效的 json。 您需要使用數組創建 class。 然后,當您序列化 class 時,它將像這樣序列化:

{"_data":[{"mute":"CobraMute"}]}

在您的代碼中,它將是這樣的:

class Program
{
    YourClass myclass = new YourClass();
    myclass._data = new List<data>();
    myclass._data.Add(new data()
    {
        mute = $"{Role.Name}"
    });
    string json = JsonConvert.SerializeObject(myclass);
    File.WriteAllText(@$".\serverconfigs\{serverid}.json", json);
}
class YourClass{
    public List<data> _data;
}

要創建不帶方括號的 JSON,只需在序列化時省略該列表:

var _data = new data() {
    mute = $"{Role.Name}"
};
string json = JsonConvert.SerializeObject(_data);
File.WriteAllText(@$".\serverconfigs\{serverid}.json", json);

這將生成: {"mute": "CobraMute"}假設Role.NameCobraMute

暫無
暫無

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

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