我应该如何正确反序列化此对象?

Fil*_*tiu 2 c# json json-deserialization asp.net-core

我使用的API返回具有一些属性的公司符号的集合,但是我不知道如何反序列化它

{
    "A": {
        "advanced-stats": {
            "prop1": 0.198791,
            "prop2": 16.59,
            "prop3": 12.44,
        }
    },
    "AA": {
        "advanced-stats": {
            "prop1": 0.198791,
            "prop2": 16.59,
            "prop3": 12.44,
        }
    },
    "AAAU": {
        "advanced-stats": {
            "prop1": 0.198791,
            "prop2": 16.59,
            "prop3": 12.44,        
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

hal*_*ldo 8

您可以使用以下类对JSON建模:

public class AdvancedStats
{
    public double Prop1 { get; set; }
    public double Prop2 { get; set; }
    public double Prop3 { get; set; }
}

public class AdvancedRoot
{
    [JsonProperty("advanced-stats")]
    public AdvancedStats AdvancedStats { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

由于JSON键的名称不同,因此可以将其建模为Dictionary<string, AdvancedRoot>。然后进行反序列化(使用Newtonsoft.Json):

var results = JsonConvert.DeserializeObject<Dictionary<string, AdvancedRoot>>(json);
Run Code Online (Sandbox Code Playgroud)

在线尝试