Учитывая следующие JSON:Deserialize массив пар ключ-значение, используя Json.NET
[ {"id":"123", ... "data":[{"key1":"val1"}, {"key2":"val2"}], ...}, ... ]
, что является частью большого дерева, как я могу десериализовать «данные» собственность в:
List<MyCustomClass> Data { get; set; }
или
List<KeyValuePair> Data { get; set; }
или
Dictionary<string, string> Data { get; set; }
используя Json.NET? Любая версия будет делать (я предпочитаю List of MyCustomClass, хотя). У меня уже есть класс, который содержит другие свойства, например:
public class SomeData
{
[JsonProperty("_id")]
public string Id { get; set; }
...
public List<MyCustomClass> Data { get; set; }
}
где «MyCustomClass» будет включать в себя только два свойства (Key и Value). Я заметил, что есть класс KeyValuePairConverter, который звучит так, будто он будет делать то, что мне нужно, но я не смог найти пример о том, как его использовать. Благодарю.
Список словарей работ; Спасибо за это. Поскольку изменение, которое я пытаюсь сделать, является частью более крупной библиотеки, я пытаюсь избежать необходимости писать пользовательскую инициализацию объекта. Я занимаюсь написанием пользовательского конвертера для своего класса (SomeData2 в вашем примере). Если я не могу заставить его работать, я буду использовать метод List of Dictionary. Благодарю. – pbz
Спасибо за этот ответ. У меня был такой же json с массивом с ключевым значением. Я просто использовал public IEnumerable Data {get; задавать; } для этого поля и работал как шарм. весь мой json был разобран отлично! .. –
maths