using System.Collections.Generic;
using Newtonsoft.Json.Schema;
using Newtonsoft.Json.Schema.Generation;
public class PackageUpdaterOptions
public float LimitDownloadSizeMB;
public partial class ServerConfig
public string CdnFallbackUrl;
public string LogConfigUrl;
public string ResVersion;
public string TestVersion;
public List<string> SupportLoginTypes;
public string ServerStatus;
public string ServerLoadStatus;
public string ServerRefuseMsg;
public DateTime ServerStartTime;
public string IosFullUpdateAppUrl;
public string AndroidFullUpdateAppUrl;
public PackageUpdaterOptions PackageUpdaterOptions;
public partial class ServerConfig
public ServerListConfig NestConfig;
public class ServerGroupConfig
public List<ServerConfig> ServerList;
public class ServerListConfig
public bool AutoSelectServer;
public List<ServerGroupConfig> GroupList;
if ((GroupList?.Count ?? 0) <= 0)
foreach (var group in GroupList)
if ((group.ServerList?.Count ?? 0) <= 0)
public static void Main()
var generator = new JSchemaGenerator();
JSchema schema = generator.Generate(typeof(ServerConfig));
Console.WriteLine(schema.ToString());