2016-06-16 4 views
2

Ниже приведена выдержка из ответа json, полученного от службы.Dynamic JsonProperty

aggregations: { 
    gender: { 
      ...other data 
    } 
} 

Служба будет возвращать такую ​​же структуру каждый раз, но с различным типом агрегации на основе некоторых параметров. Таким образом, термин «пол» может быть «возрастом» или «городом» или чем-либо еще. Я ищу способ создания объекта .Net, возможно, с динамическим именем свойства, так что мне не нужно иметь отдельный объект для каждой агрегации. что-то вроде этого:

public class Aggregation { 
    [JsonProperty(PropertyName = "<dynamic value based on json response>")] 
    public List<string> AggregationValues { get; set; } 
} 

Есть ли другой способ достичь этого? Спасибо за помощь.

+1

Взгляните на этот ответ http://stackoverflow.com/questions/26882986/overwrite-json-property-name-in-c-sharp – smoksnes

+0

Я сделал это с помощью custom ContractResolver, как предлагает @smoksnes, и он работал довольно Что ж. В то же время, я попытался бы десериализовать его как Словарь, потому что это то, чем он является по существу. –

ответ

0

Для создания динамических свойств в C# см. this. Эта статья определяет, что нам нужно от динамического свойства.

+0

@ user3731783, пожалуйста, поддержите и примите этот ответ, если этот ответ поможет вам, поэтому люди знают, что это правильный ответ. –