Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何正确反序列化此对象?_C#_Json_Asp.net Core_Json Deserialization - Fatal编程技术网

C# 如何正确反序列化此对象?

C# 如何正确反序列化此对象?,c#,json,asp.net-core,json-deserialization,C#,Json,Asp.net Core,Json Deserialization,我使用了一个API,它返回一组带有某些属性的公司符号,但我不知道应该如何对其进行反序列化 { "A": { "advanced-stats": { "prop1": 0.198791, "prop2": 16.59, "prop3": 12.44, } }, "AA": { "advanced-stats": { "prop1":

我使用了一个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,        
        }
    }
}

可以使用以下类对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; }
}
由于JSON键具有不同的名称,因此可以将其建模为
字典
。然后反序列化(使用Newtonsoft.Json):

var results=JsonConvert.DeserializeObject(json);

这可能有助于你找到一个起点:我已经在其他网站上尝试过这种方法,但什么都没有match@Stefan您可能不想使用外部web应用程序,因为您可能会将敏感数据存储在其他地方。你应该避免使用这些标签,OP在查看标签时要求一个特定的C#解决方案。@Barrosy:嗯,我只是想开始C#建模。。。无论如何,OP似乎已经尝试过了。对象的字典(keys=A、AA等)包含“somepairtype”的List/Array类型的属性(advancedstats)。。并在任何合适的局部模型中进行转换。
var results = JsonConvert.DeserializeObject<Dictionary<string, AdvancedRoot>>(json);