Можно ли обойтись без атрибутов в JSON
От: Passerby  
Дата: 24.08.19 15:11
Оценка:
К нескольким сообщениям из разных источников применяется:
JsonConvert.DeserializeObject<List<OKeX_Json.RootObject>>(message);

При этом создаются объекты с одинаковыми названиями свойств, т.к. применяются атрибуты. Но классы разные.
Пример для одного свойства:
//для сообщения из одного источника:
public class RootObject1
    {
       [JsonProperty(PropertyName = "sell")]
            public decimal ask { get; set; }
}
//Для сообщения из другого источника:
public class RootObject2
    {
       [JsonProperty(PropertyName = "best_ask")]
            public decimal ask { get; set; }
}
//Еще из какого-то источника:
public class RootObject3
    {
       [JsonProperty(PropertyName = "Ask")]
            public decimal ask { get; set; }
}

Все объекты одинаково обрабатываются, потому хочется чтобы была только одна функция их обработки.
Существуют ли параметры метода DeserializeObject, которые бы форматировали названия свойств, так, как это делают атрибуты? Т.е. можно ли сделать только один public class RootObject для все источников сообщений
public class RootObject
    {       
            public decimal ask { get; set; }
}

а роль атрибутов играли бы параметры DeserializeObject?
Или одну и ту же функцию обработки объектов в данном случае можно сделать только применяя dynamic?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.