weixin_40187983 2019-07-01 10:18 采纳率: 100%
浏览 615
已采纳

vb.net 将json还原成datatable-在线等

以下的代码是将datatable转成json的方法

我想再将json转回成原本的datatable请问要如何现呢? 感谢

图片说明

Public Function DataTableToJson(ByVal dt As DataTable) As String
Dim jsonBuilder As StringBuilder = New StringBuilder()
For i As Integer = 0 To dt.Rows.Count - 1
jsonBuilder.Append("{")

        For j As Integer = 0 To dt.Columns.Count - 1
            jsonBuilder.Append("""")
            jsonBuilder.Append(dt.Columns(j).ColumnName)
            jsonBuilder.Append(""":""")
            jsonBuilder.Append(dt.Rows(i)(j).ToString())
            jsonBuilder.Append(""",")
        Next

        If dt.Columns.Count > 0 Then
            jsonBuilder.Remove(jsonBuilder.Length - 1, 1)
        End If

        jsonBuilder.Append("},")
    Next

    If dt.Rows.Count > 0 Then
        jsonBuilder.Remove(jsonBuilder.Length - 1, 1)
    End If

    Return jsonBuilder.ToString()
End Function
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-07-01 10:25
    关注

    json转换成datatable往往没有通用的代码,这是因为json是层次型的数据。列表是它的一个特例。
    因此datatable的数据肯定可以用json来描述,而json的数据如果是层次的,就很难用二维的表格来描述,比如这样一个js
    {
    country :
    {
    name: "china"
    province:
    {
    name : "shandong"
    city: { name: "jinan" }
    }
    }
    }
    它是一个多层的层次关系,就不太好用dt表示。

    所以我建议你将json反序列化成对象
    然后根据你需要的,将其中的某个List类型的对象,再转换为datatable

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决