You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定嵌套JSON结构转换为对应的C#类定义

C# 类结构匹配方案

完整分层类定义

以下类完全匹配提供的JSON结构,默认适配.NET 自带的System.Text.Json序列化库:

// 对应values数组内的单个对象结构
public class TxtValueItem
{
    [JsonPropertyName("value")]
    public string Value { get; set; }
}

// 对应txt字段的对象结构
public class TxtDnsRecord
{
    [JsonPropertyName("values")]
    public List<TxtValueItem> Values { get; set; }

    [JsonPropertyName("first_seen")]
    // 也可直接声明为DateTime类型,序列化器可自动识别yyyy-MM-dd格式的日期
    public string FirstSeen { get; set; }
}

// 对应current_dns字段的对象结构
public class CurrentDnsInfo
{
    [JsonPropertyName("txt")]
    public TxtDnsRecord Txt { get; set; }
    // 后续如果JSON新增A、MX、AAAA等其他DNS记录类型,可在此处扩展对应属性
}

// JSON根节点对应类
public class DomainInfo
{
    [JsonPropertyName("subdomain_count")]
    public int SubdomainCount { get; set; }

    [JsonPropertyName("hostname")]
    public string Hostname { get; set; }

    [JsonPropertyName("endpoint")]
    public string Endpoint { get; set; }

    [JsonPropertyName("current_dns")]
    public CurrentDnsInfo CurrentDns { get; set; }

    [JsonPropertyName("apex_domain")]
    public string ApexDomain { get; set; }

    [JsonPropertyName("alexa_rank")]
    public int AlexaRank { get; set; }
}

适配说明

  • 若使用Newtonsoft.Json(Json.NET)做序列化,仅需将所有JsonPropertyName特性替换为JsonProperty即可正常使用。
  • 此前定义失败的核心原因是没有严格对应JSON的嵌套结构:JSON中每个{}对应一个独立类,[]对应集合/数组类型,不要使用嵌套字典匹配固定字段的结构。
  • 若后续current_dns下会出现动态的DNS记录类型作为键,可将CurrentDnsInfo类改为Dictionary<string, TxtDnsRecord>类型适配动态结构。

内容的提问来源于stack exchange,提问作者chrisxfire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:36:09