将数据从JSON数组读取到数据源

时间:2017-08-19 07:05:24

标签: vb.net json.net

我有一个JSON文件中的以下数据,我想在表单中添加为Combobox的数据源:

  "opr": [
    {
      "name": "John",
      "code": "JS"
    },
    {
      "name": "Diana",
      "code": "DC"
    },
    {
      "name": "Cashier",
      "code": "CS"
    }
  ],

“name”是我想在表单中显示的字符串,而“code”是每个名称的包含值(假如我选择John,那么“JS”将显示在另一个文本框中“)

这是我将要使用的课程:

Public Class Opr
    Public Property name As String
    Public Property code As String
End Class

Public Class cgOpr
    Public Property opr As Opr()
End Class

以前我使用For Each迭代所有ID并使用Items.Add添加它们,但我想知道我是否可以使用Datasource。据我所知,我需要将数组转换为列表,但我还没弄清楚如何。

我正在使用JSON.NET进行解析。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您也可以使用数组作为数据源。

Dim data As cgOpr = JsonConvert.DeserializeObject(Of cgOpr)(jsonString)

combobox.ValueMember = "code"
combobox.DisplayMember = "name"
combobox.DataSource = data.opr

然后,您可以使用combobox.SelectedItemcombobox.SelectedValue来访问所选数据

Dim selected As Opr = DirectCast(combobox.SelectedItem, Opr)
Dim selectedCode As String = selected.code

' Or
Dim selectedCode As String = combobox.SelectedValue.ToString()