У меня есть JSon файл:Newtonsoft JSON десериализации - ключ как свойство
...
"Key1": {
"Base": 123,
"Max": 1234
},
"Key2": {
"Base": 123,
"Max": 1234
},
"Key3": {
"Base": 123,
"Max": 1234
},
...
мне нужно десериализации его в объект с JsonConvert.DeserializeObject<T>(__json);
Но мне нужно использовать ключи (Key1, Key2, ключ3 , ...) как свойство моего десериализованного объекта. К сожалению, я не могу использовать альтернативный метод десериализации, и я не могу изменить формат json.
Мой объект как что
public class Item {
public string Id { get; set; }
public int Base { get; set; }
public int Max { get; set; }
}
My Id должен быть "Key1", «Key2 ...
возможно
почему не список обычая класса '' Key' с Base' и 'свойств Max'? вы можете перечислить через каждое свойство 'Key', используя цикл – trashr0x
Да, насколько я знаю, единственный способ сделать это - использовать подход, основанный на использовании. Это не так уж плохо, но я не думаю, что есть что-то встроенное, которое это сделает. –
Реальный объект более сложный и имеет некоторые атрибуты OnDeserialization для под-объектов, а ключ (enum) используется для вычисления некоторых данных. Я использую большую платформу, которая десериализует из автоматически сгенерированных файлов, и я не могу изменить процесс десериализации или json. , но я могу добавить JsonConverter, ContractResolver, CustomConverter, атрибут или любую другую подобную вещь, но я могу только обновить свой класс. – Demonia