Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将数据从JSON数组读取到数据源_Vb.net_Json.net - Fatal编程技术网

Vb.net 将数据从JSON数组读取到数据源

Vb.net 将数据从JSON数组读取到数据源,vb.net,json.net,Vb.net,Json.net,我有一个JSON文件中的以下数据,我想将其添加为表单中组合框的数据源: "opr": [ { "name": "John", "code": "JS" }, { "name": "Diana", "code": "DC" }, { "name": "Cashier", "code": "CS" } ], “name”是我希望在表单中显示的字符串,而“code”是每个名

我有一个JSON文件中的以下数据,我想将其添加为表单中组合框的数据源:

  "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作为解析器。提前谢谢您。

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

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

combobox.ValueMember = "code"
combobox.DisplayMember = "name"
combobox.DataSource = data.opr
然后您可以使用
组合框。选择editem
组合框。SelectedValue
访问所选数据

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

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

那么问题出在哪里呢?对不起,我遗漏了我的问题…我正在寻找一种方法,将这些JSON数据填充到带有DataSource的组合框中(以前我用于每个组合框)。我想我需要将数组转换为可以放入数据源的列表,但我找到了一种方法。谢谢!如果有很多组合框,我是否需要逐个设置这些值和显示成员?如果您希望使用不同的值来显示文本和值本身,那么可以。