Arrays 将JSON嵌套数组输出到VB.net对象

Arrays 将JSON嵌套数组输出到VB.net对象,arrays,json,vb.net,Arrays,Json,Vb.net,我正在将具有嵌套数组的JSON字符串反序列化为vb.net对象。JSON是有效的,我可以反序列化大部分JSON。但是,我不清楚我的类属性是否正确编写,以通过嵌套数组实现这一点。我还得到了一个奇怪的错误,注意到“类型char的值不能转换为clsJson.datum”,而此时任何地方都不存在char类型(我可以看到!) 我的班级: Public Class clsJson Public Property latitude As Double Public Property minutely As M

我正在将具有嵌套数组的JSON字符串反序列化为vb.net对象。JSON是有效的,我可以反序列化大部分JSON。但是,我不清楚我的类属性是否正确编写,以通过嵌套数组实现这一点。我还得到了一个奇怪的错误,注意到“类型char的值不能转换为clsJson.datum”,而此时任何地方都不存在char类型(我可以看到!)

我的班级:

Public Class clsJson
Public Property latitude As Double
Public Property minutely As Minly  
End Class

Public Class Minly                           
Public Property summary As String
Public Property icon As String
'***Public data As Datum()
Public Property data() As List(Of Datum)
End Class

Public Class Datum
Public Property time As Integer
Public Property summary As String
Public Property icon As String
Public Property precipIntensity As Double
Public Property precipProbability As Double
End Class
我的代码:

Imports Newtonsoft.Json

Public Class test_1a

Dim strJsontxt As String = Nothing
Dim myWeather As clsJson

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Try
        '***** paste strJson to textbox; final will download from web
        strJsontxt = TextBox3.Text
        txtInput.Text = strJsontxt

    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try

    Try
        myWeather = JsonConvert.DeserializeObject(Of clsJson)(strJsontxt) 'works            
        Console.WriteLine("Latitude:  " & myWeather.latitude) *'works*                        
        Console.WriteLine("Minutely_Summary:  " & myWeather.minutely.summary) *'works* 

        Console.WriteLine(myWeather.minutely.data)  *'returns*      ‘System.Collections.Generic.List`1[JSON_2.Datum]

        For Each data As Datum In strJsontxt  '*Error:* "Value of type char cannot be converted to clsJson.datum”
            Console.WriteLine("Min_data.toString:  " & myWeather.minutely.data.time)
        Next

        debugOutput(txtInput.Text)
    Catch ex As Exception
        MsgBox(ex.ToString)
        debugOutput(txtInput.Text)
    End Try

End Sub

End Class
我的JSON(已验证-确定):

问题是:

  • 输出: Console.WriteLine(myWeather.minutely.data)'returns'System.Collections.Generic.List`1[JSON_2.Datum]
  • 我的For Each循环,在这里我要读取minutely.data数组显示此错误:error“char类型的值无法转换为clsJson.datum”

  • 我确信我的clsJson中有东西不正常或丢失。有人能提供任何帮助吗?我对此进行了很好的研究。在上有类似的东西,但不完全是。谢谢!!

    myWeather.minutely.data
    是一个数组(或列表)这就是为什么您会看到数据类型。访问memebrs以获取数据:
    myWeather.minutely.data(index)
    其中index是一个0到多少的数字are@Plutonix:我越来越近了,但我仍然没有正确地指向数据(索引):@puropoix:我越来越近了,但我仍然没有指向数据(索引)正确:`对于每个i作为新列表(数据)控制台中的数据。WriteLine(“行:时间:”&i.time)下一步`我没有Intellisense错误,我有适当的属性,但没有输出。我缺少什么?如果你正在反序列化,你不会创建该列表。将鼠标悬停在
    myWeather
    对象上。你缺少1或2个属性,但列表/数组应该填充Hooray!!!对于myWe中作为数据的每个项目ather.MINUTLY.data Console.WriteLine(“精确性:此处预期为0:”&Item.PrecIpIntensity)Console.WriteLine(“预期:unix日期150341220,每项增加60分钟:”&Item.time)下一步谢谢,@pulotinix!!
    myWeather.MINUTLY.data
    是一个数组(或列表)这就是为什么您会看到数据类型。访问memebrs以获取数据:
    myWeather.minutely.data(index)
    其中index是一个0到多少的数字are@Plutonix:我越来越近了,但我仍然没有正确地指向数据(索引):@puropoix:我越来越近了,但我仍然没有指向数据(索引)正确:`对于每个i作为新列表(数据)控制台中的数据。WriteLine(“行:时间:”&i.time)下一步`我没有Intellisense错误,我有适当的属性,但没有输出。我缺少什么?如果你正在反序列化,你不会创建该列表。将鼠标悬停在
    myWeather
    对象上。你缺少1或2个属性,但列表/数组应该填充Hooray!!!对于myWe中作为数据的每个项目ather.minutely.data Console.WriteLine(“精确性:此处预期为0:”&Item.PrecisionTensity)Console.WriteLine(“预期:unix日期150341220,每项增加60分钟:”&Item.time)下一步谢谢,@Proputinix!!
    {
    "Latitude": 26.422518,
    "Longitude" :  80.147245,
    "minutely": {
    "summary": "Partly cloudy for the hour.",
    "icon": "partly-cloudy-day",
    "data": [
      {
        "time": 1503329280,
        "precipIntensity": 0,
        "precipProbability": 0
      },
      {
        "time": 1503329340,
        "precipIntensity": 0,
        "precipProbability": 0
      },
      {
        "time": 1503329400,
        "precipIntensity": 0,
        "precipProbability": 0
      }
     ]
     }
     }