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

如何在C#中反序列化根节点为动态属性名的JSON?

解决C#中动态根属性的JSON反序列化问题

你的问题核心是JSON的根节点是动态属性名(此处为GUID字符串),而你定义的GameStopNftListing类结构和JSON实际结构不匹配,导致反序列化失败。下面提供两种常用JSON库的解决方案:

方案1:使用Newtonsoft.Json(Json.NET)

直接将整个JSON反序列化为Dictionary<string, Value>类型,动态键会作为字典的Key,对应的值就是你定义的Value对象:

首先保留正确的Value和LoopringSaleInfo类定义(无需GameStopNftListing类):

public class LoopringSaleInfo
{
    public string? minPricePerNftInWei { get; set; }
    public string? amountForSale { get; set; }
}

public class Value
{
    public string? minPricePerNft { get; set; }
    public string? amountForSale { get; set; }
    public LoopringSaleInfo? loopringSaleInfo { get; set; }
    public int likeCount { get; set; }
}

执行反序列化并获取数据:

string jsonStr = "你的目标JSON字符串";
var result = JsonConvert.DeserializeObject<Dictionary<string, Value>>(jsonStr);

// 提取动态键对应的业务数据
if (result != null && result.Count > 0)
{
    string dynamicGuidKey = result.Keys.First();
    Value nftListing = result[dynamicGuidKey];
    // 后续处理nftListing对象
}

方案2:使用System.Text.Json(.NET内置库)

同样支持字典反序列化,或者用JsonDocument手动解析:

方式A:字典反序列化

string jsonStr = "你的目标JSON字符串";
var options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true };
var result = JsonSerializer.Deserialize<Dictionary<string, Value>>(jsonStr, options);

// 获取动态键与对应数据
if (result != null && result.Count > 0)
{
    var firstEntry = result.First();
    string dynamicGuidKey = firstEntry.Key;
    Value nftListing = firstEntry.Value;
}

方式B:JsonDocument手动解析(适合无需完整类的场景)

string jsonStr = "你的目标JSON字符串";
using var doc = JsonDocument.Parse(jsonStr);
var root = doc.RootElement;

// 遍历根节点唯一的动态属性
foreach (var property in root.EnumerateObject())
{
    string dynamicGuidKey = property.Name;
    Value nftListing = property.Value.Deserialize<Value>(new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
}

原类定义无效的原因

你定义的GameStopNftListing类包含@class和value两个属性,但你的JSON根节点并没有这两个字段,而是直接以动态GUID为键、Value结构为值的对象,两者结构完全不匹配,因此无法正确反序列化。

内容的提问来源于stack exchange,提问作者John-Michael

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:05:17