将 json 转换为数据表 vb.net

问题描述

Dim response As Net.HttpWebResponse = request.GetResponse
Dim dataStream As IO.Stream = response.GetResponseStream()
Dim reader As New IO.StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()

使用此代码从 responseFromServer 获取响应是这样的

"{ "RefNumber":"11b1b72d-84a2-4d97-9f3c-67fb6dc57210","Status":"S"}"

我需要将此json字符串转换为数据表。

解决方法

With Newtonsoft library "Json.NET"

您需要编辑 JSON 字符串,然后才能将 JSON 反序列化为数据集。

Here a working example on dotnetfiddle

    Dim jsonString As String = "{""RefNumber"":""11b1b72d-84a2-4d97-9f3c-67fb6dc57210"",""Status"":""S""}"
    
    jsonString = "{""YourTableName"": [" + jsonString + "] }"

    Console.WriteLine(jsonString)

    Dim ds As DataSet = JsonConvert.DeserializeObject(of DataSet)(jsonString)
    
    Console.WriteLine("")
    Console.WriteLine("## " + ds.Tables("YourTableName").TableName + " ##")
    Console.WriteLine("-------------------")
    Console.WriteLine("")

    For Each r as DataRow in ds.Tables("YourTableName").Rows
        Console.WriteLine(r("RefNumber").ToString() + " - " + r("Status").ToString())
    next