.NET 4.x API ВК, чтение ответа в формате XML - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, решил попробовать поработать с API ВК, и столкнулся с проблемой. Программа должна отправлять запрос на получение списка аудиозаписей, переводить полученный в JSON'e ответ в XML и занести содержимое тегов с автором и названием в ListBox. При конвертировании, каждая информация о записи оборачивается в тег <response>:
Листинг программы
  1. <answ>
  2. <response>
  3. <artist>Автор</artist>
  4. <title>Название</title>
  5. </response>
  6. <response>
  7. <artist>Автор</artist>
  8. <title>Название</title>
  9. </response>
  10. <answ>
... но при этом в самом верху ответа также возвращается и количество аудиозаписей, которая тоже оборачивается в <response> Конечный возвращаемый результат:
Листинг программы
  1. <answ>
  2. <responce>Количество аудиозаписей</response>
  3. <response>
  4. <artist>Автор</artist>
  5. <title>Название</title>
  6. </response>
  7. <response>
  8. <artist>Автор</artist>
  9. <title>Название</title>
  10. </response>
  11. <answ>
И при попытке чтения всех тегов с авторами и названием, программа выдает ошибку "Ссылка на объект не указывает на экземпляр объекта" и, естественно, ничего не заполняет. Можно ли как-то при конвертировании обернуть число аудиозаписей в другой тег? Или есть другая забрать из XML нужные мне данные? Возвращаемый от ВК JSON:
Листинг программы
  1. response: {
  2. count: число аудиозаписей,
  3. items: [{
  4. artist: 'автор',
  5. title: 'название',
  6. }, {
  7. artist: 'автор',
  8. title: 'название',
  9. }]
  10. }
Код конвертирования JSON в XML и чтения содержимого тегов:
Листинг программы
  1. Dim streamreader As New StreamReader(response.GetResponseStream, Encoding.GetEncoding("utf-8"))
  2. Dim node As XNode = JsonConvert.DeserializeXNode(streamreader.ReadToEnd, "answ")
  3. Dim xdoc As XDocument = XDocument.Parse(node.ToString)
  4. For Each xe As XElement In xdoc.Element("answ").Elements("response")
  5. ListBox1.Items.Add(xe.Element("artist").Value & " - " & xe.Element("title").Value)
  6. Next

Решение задачи: «.NET 4.x API ВК, чтение ответа в формате XML»

textual
Листинг программы
  1. Public Class Rootobject
  2.     Public Property response As Response
  3. End Class
  4.  
  5. Public Class Response
  6.     Public Property count As Integer
  7.     Public Property items() As Item
  8. End Class
  9.  
  10. Public Class Item
  11.     Public Property artist As String
  12.     Public Property title As String
  13. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы