2

私はこれを2日間噛んでいますが、見つけたサンプルを使用して動作させることができません. 私はjsonの解析に本当に苦労しています。

だから私がする必要があるのは、この文字列をデータテーブルに入れることです。文字列を取得できるところまで到達できました。解析が必要なだけです。

{"total": 35799, "results": [{"publisher": "bamamatch.com", "first_seen": "2011-08-01", "times_seen": 1598, "monthly_uniques": null, "last_seen": "2013-04-02"}, {"publisher": "catholicdatingforfree.com", "first_seen": "2011-08-01", "times_seen": 1554, "monthly_uniques": null, "last_seen": "2013-04-02"}], "page_size": 100, "offset": 0}

VB.netを使用してこれをデータテーブルに解析する明確な方法を教えていただけますか?

アップデート

        Dim url As String
        Dim request As HttpWebRequest
        Dim response As HttpWebResponse = Nothing
        Dim reader As StreamReader

        url = "http://api.mixrank.com/v2/json/d73f10e7b22fbc69b79f0e0074913c14/advertisers/" & LCase(txtKeywords.Text) & "/gdn/publishers?page_size=100"

        request = DirectCast(WebRequest.Create(url), HttpWebRequest)
        response = DirectCast(request.GetResponse(), HttpWebResponse)
        reader = New StreamReader(response.GetResponseStream())

        Dim myDataTable As DataTable = DirectCast(JsonConvert.DeserializeObject(reader.ReadToEnd, (GetType(DataTable))), DataTable)
4

1 に答える 1

0

これはバグのようです (おそらく VB のどこかで)。

テストでは JsonTextReader() を使用しましたが、同じエラーが表示されます。DataTable を作成しようとしませんでした。

テスト文字列から最後の文字を削除する以下のコード (3 行目) に注意してください。この調整がないと、「追加テキスト」エラーが表示されます。

また、OPでは、提供されたJSONをラップして[ ]、このコードで動作させる必要がありました。

    Try
        Dim s As String = TextBox1.Text
        s = s.Remove(s.Length - 1)
        Dim txt As New System.IO.StringReader(s)
        txt.Read()
        Dim reader As New JsonTextReader(txt)
        Do While reader.Read
            If reader.Value IsNot Nothing Then Debug.Print(reader.Depth & ": " & reader.TokenType & ": " & reader.Path & ": " & reader.Value)
        Loop
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
于 2013-04-04T16:36:20.170 に答える