Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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# 动态JsonProperty_C#_Asp.net Mvc_Json.net - Fatal编程技术网

C# 动态JsonProperty

C# 动态JsonProperty,c#,asp.net-mvc,json.net,C#,Asp.net Mvc,Json.net,下面是从服务接收到的json响应的摘录 aggregations: { gender: { ...other data } } 服务每次都将返回相同的结构,但根据某些参数使用不同的聚合类型。所以“性别”这个词可以是“年龄”或“城市”或其他任何东西。我正在寻找一种方法来创建一个.Net对象,这是可能的,它具有一个动态属性名,这样我就不需要为每个聚合使用单独的对象。大概是这样的: public class Aggregation { [JsonP

下面是从服务接收到的json响应的摘录

aggregations: {
    gender: {
           ...other data
    }
}
服务每次都将返回相同的结构,但根据某些参数使用不同的聚合类型。所以“性别”这个词可以是“年龄”或“城市”或其他任何东西。我正在寻找一种方法来创建一个.Net对象,这是可能的,它具有一个动态属性名,这样我就不需要为每个聚合使用单独的对象。大概是这样的:

public class Aggregation    {
    [JsonProperty(PropertyName = "<dynamic value based on json response>")]
    public List<string> AggregationValues { get; set; }
}
公共类聚合{
[JsonProperty(PropertyName=”“)]
公共列表聚合值{get;set;}
}

有没有其他方法可以做到这一点?感谢您的帮助。

有关在c中创建动态属性的信息,请参阅。本文定义了我们需要从动态属性中获得什么。

有关在c#中创建动态属性的信息,请参阅。这篇文章定义了我们需要从动态属性中得到什么。

看看这个答案,正如@smoksnes所建议的,我已经用CustomContractResolver完成了这项工作,它工作得非常好。同时,我会尝试将其反序列化为Dictionary,因为这就是它的本质。看看这个答案,正如@smoksnes所建议的,我已经使用CustomContractResolver完成了这项工作,并且它工作得非常好。同时,我会尝试将它反序列化为字典,因为它本质上就是这样。