Конвертировать JSON-ответ в список объектов и отобразить в виде таблицы в Windows Forms с помощью vb.net - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть что-то вроде этого, чтобы проверить сервер на наличие списка объектов:

Public Class AllCustomers
    Private Sub AllCustomers_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim request = WebRequest.CreateHttp("http://****************/api/customer")
        request.Method = HttpMethod.Get.Method


        Dim response As WebResponse = request.GetResponse()
        Dim dataStream As Stream = response.GetResponseStream()
        Dim reader As New StreamReader(dataStream)
        Dim responseFromServer As String = reader.ReadToEnd()

    End Sub
End Class

Возвращает следующую строку (в качестве примера):

[
    {
        "CustomerId": 1,
        "FirstName": "Rodrigo",
        "LastName": "Carvajal",
        "Age": 26
    },
    {
        "CustomerId": 2,
        "FirstName": "Rodrigo",
        "LastName": "Carvajal",
        "Age": 26
    },
    {
        "CustomerId": 3,
        "FirstName": "Rodrigo",
        "LastName": "Carvajal",
        "Age": 26
    }
]

Эти атрибутыфактически из объекта Customer.Я хочу преобразовать эту строку в список клиентов, а затем отобразить их в виде строк в таблице в форме Windows.Как мне преобразовать строку в список объектов?

Тогда, что было бы идеальным способом отобразить их в таблице?Является ли DataGridView хорошим вариантом?Я прочитал, что мне нужно создать объект DataSet.Есть ли другой вариант?

Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2018

Как преобразовать строку в список объектов?

Вы можете использовать Json.net

Dim customers As List(Of Customer) 
customers = JsonCovert.DeserializeObject(Of List(Of Customer))(responseFromServer)

Тогда, что было бы идеальным способом отобразить их в таблице?

Добавьте их к источнику данных, к которому может привязаться птичка.

Dim list As BindingList(Of Customer) = new BindingList(Of Customer)(customers)
myGrid.DataSource = list

Или вы могли бы иметьтолько что добавил список как список клиентов

myGrid.DataSource = customers
...