Я получаю следующее из полезной информации json из запроса REST.Как десериализовать корневой объект с бессмысленными именами динамических клавиш? Json.NET
{
"version": "1.1",
"date": "2017-01-06",
"count": "130",
"0": {
"artist": "Artist 1",
"title": "Title 1"
},
"1": {
"artist": "Artist 2",
"title": "Title 2"
},
...
"49": {
"artist": "Artist 50",
"title": "Title 50"
}
}
Как вы можете видеть, существует несколько числовых элементов корня. Эти элементы индексируют объект в ответе, поэтому мне не нужны сами цифры, мне просто нужен объект Song
, который они представляют. Мне также нужен count
, чтобы узнать, нужно ли мне позвонить на сервер, чтобы получить следующую страницу песен (сервер возвращает 50 Song
объектов максимум за звонок).
Вот что у меня есть для Song
класса:
public class Song
{
public string artist {get; set;}
public string title {get; set;}
}
Но я, имеющие вопросы, получить корневой элемент. Я попытался подражать процессу, используемому при динамическом дочернем элементе, но это не работает.
public class SongsResponse
{
public string version { get; set; }
public string date { get; set; }
public string count {get; set; }
public Dictionary<string, Song> songs { get; set; }
}
Я видел решения, которые «выбрасывают» version
, date
и count
и другие, которые делают это без заранее определенных классов.
Но мне нужно count
и в идеале хотелось бы работать с предопределенными классами.
Голосов без комментариев ??? – dbJones
Реорганизация опции? Зачем вам нужно? Если 'песни' реализует' ICollection', у него будет свойство 'Count'. –
Сервер возвращает только 50 ответов за раз. Но 'count' говорит вам, насколько подходят критерии. Поэтому 'count' может быть' 250'. Обновленный вопрос, чтобы сделать это понятнее. – dbJones