代码之家  ›  专栏  ›  技术社区  ›  rodrigocf

用vb.net将JSON响应转换为对象列表并以Windows窗体的形式显示在表中

  •  0
  • rodrigocf  · 技术社区  · 7 年前

    我有这样的方法来探测服务器上的对象列表:

    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
        }
    ]
    

    那么,在表格中显示它们的理想方式是什么呢?DataGridView是一个好的选择吗?我读到我还必须创建一个数据集对象。还有别的选择吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Nkosi    7 年前

    如何将字符串转换为对象列表?

    你可以用 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
    
    推荐文章