簡體   English   中英

C# 用多個 arrays 反序列化 json

[英]C# deserializes json with multiple arrays

我正在嘗試將以下 JSON 文件反序列化為 3 個變量: manager(Class) Servers(list-class) Admins(List-Class)

到目前為止我嘗試過的一切都不起作用。 我該怎么做?

{
   "Manager":{
      "ServerIp":"ServerIP",
      "ServerPort":"6000"
   },
   "Admins":[
      {
         "Name":"AdminUserName",
         "ID":"AdminID"
      }
   ]
   "Servers":[
      {
         "ServerName":"servername",
         "Path":"executablepath",
         "IP":"ip",
         "Port":"port",
         "Password":"pass"
      }
   ]
}
public class Manager
{
    public string? ServerIp { get; set; }
    public  string? ServerPort { get; set; }
}
public class Admins
{
    public string? Name { get; set; }
    public string? ID { get; set; }
}

public class Servers
{
    public string? ServerName { get; set; }
    public string? Path { get; set; }
    public string? IP { get; set; }
    public string? Port { get; set; }
    public string? Password { get; set; }
}

添加另一個 class 與您描述的 JSON 的結構精確匹配:

public class Info // come up with a better name than "Info"...
{
   public Manager Manager { get; set; }
   public List<Admins> Admins { get; set; }
   public List<Servers> Servers { get; set; }
}

然后只需將此文件的內容反序列化為此 class 的實例,例如(使用System.Text.Json ):

var json = File.ReadAllText(pathToFile);
var info = JsonSerializer.Deserialize<Info>(json);

然后只需根據需要閱讀info的屬性( Manager等)。

這是與您所需的C#類型等效的JSON model。 在使用 JSON 到 C# 模型時,不建議使用可空類型。 在此處輸入圖像描述

暫無
暫無

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

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