【问题标题】:add data to a datatable from JSON string - vb.net从 JSON 字符串向数据表添加数据 - vb.net
【发布时间】:2018-07-15 14:54:27
【问题描述】:

我需要知道如何在vb.net 代码中从JSON 字符串填充datatable

JSON 字符串

{"success":true,"message":"","result":[{"Paper1:null,"StateId":"57ee","School":"1A","Received":"2018-07-03T08:10:05.22","TimeS":"00","STAT":"98","ScoreCard":"76"},{"Paper1:null,"StateId":"52ef","School":"1A","Received":"2018-07-03T08:10:05.22","TimeS":"00","STAT":"88","ScoreCard":"57"}]}

我需要知道如何将上面的字符串填充到datatable

以上字符串在WebResponse 中。那么有什么方法可以读取webresponse(这里我使用了streamreader,或任何其他好的方法)并填充到数据表中?

我在字符串上方得到的代码。

        Dim rqst As WebRequest = WebRequest.Create(uri_variable)
        Dim res_p As WebResponse
        rqst.Method = "GET"
        rqst.Headers.Add("apisign:" & sign) 
        res_p = rqst.GetResponse() 
        Dim reader As New StreamReader(res_p.GetResponseStream())
        Dim JSON_String as string = reader

PS:编辑:我为用户“CruleD”提供了一个屏幕截图

https://i.stack.imgur.com/EYbP0.png

【问题讨论】:

    标签: json vb.net datatable


    【解决方案1】:

    嘿,又是这个。

    Imports System.Web.Script.Serialization ' for reading of JSON (+add the reference to System.Web.Extensions library)
    Dim JSONC = New JavaScriptSerializer().DeserializeObject(JSON_String)
    

    用断点检查 JSONC。你会看到它的外观,然后你决定你想用它做什么。

    Comparing files not working as intended 我在另一个帖子中给出了类似的答案。

    编辑:

    JSONC("result")(0)("Quantity")
    

    首先你得到“结果”的内容,然后你选择你想要的集合,在这种情况下首先(所以 0)然后你再次搜索你想要的任何键,例如“数量”,就像你最初为结果所做的那样。

    还有其他方法可以做同样的事情,但这个应该很简单。 反序列化有 3 种类型,如果需要,请查看它们。

    【讨论】:

    • 非常感谢,在断点处,它确实包含所有细节,就像一个数组一样。但是,如何一一访问这些信息?我尝试了TextBox1.Text = JSONC(2)("result")("Object")(4),但它抛出了一个错误The given key was not present in the dictionary .. 我包含了 JSONC 数组的屏幕截图。请参阅原帖底部。
    • 例如应该是 JSONC("result")(0)("Quantity")。
    • 非常感谢 CruleD,它有效.. 我会将其作为可接受的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    相关资源
    最近更新 更多