Arrays 从JsonReader VB.net读取JArray时出错

Arrays 从JsonReader VB.net读取JArray时出错,arrays,vb.net,Arrays,Vb.net,哪里出了问题? 我的编码 Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq Imports System.Net Public Class DigiposAJA Private Sub CekPaket() Dim json As String = (New WebClient).DownloadString("http://192.168.101.1:100/list_product?us

哪里出了问题? 我的编码

Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Imports System.Net
Public Class DigiposAJA       

    Private Sub CekPaket()
        Dim json As String = (New WebClient).DownloadString("http://192.168.101.1:100/list_product?username=SIP12&category=ROAMING&to=0811&payment_method=LINKAJA&json=1")
        Dim jarr As JArray = Linq.JArray.Parse(json)
        Dim sKatagori As String



        For Each jtk As JToken In jarr
            sKatagori = jtk.SelectToken("kategori")

            DgvDigipos.Rows.Add()
            DgvDigipos.Rows(DgvDigipos.Rows.Count - 1).Cells("DgvKategori").Value = sKatagori
        Next
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        CekPaket()
    End Sub
End Class
调试之后,结果是这样的错误

Newtonsoft.Json.JsonReaderException: 'Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1.'

你能帮我得到一个很好的结果吗?

很可能这是因为你调用web服务时没有返回你期望的结果

这实际上是分离关注点和强类型对象的好处的一个很好的例子。你的子蛋糕应该分为三个部分。1) 去拿绳子。这应该是一个函数,应该使用某种配置来获取端点,并为失败提供适当的防护;2)将字符串解析为强类型对象(IEnumerable之类的),这应该进行验证以确保输入良好。您可能希望公开此函数以便于测试。最后3)将结果绑定到UI。看起来您是在手工完成此部分,只要可能,您应该通过提供数据源和显示模板来允许框架为您完成此部分