以下的代码是将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
json转换成datatable往往没有通用的代码,这是因为json是层次型的数据。列表是它的一个特例。
因此datatable的数据肯定可以用json来描述,而json的数据如果是层次的,就很难用二维的表格来描述,比如这样一个js
{
country :
{
name: "china"
province:
{
name : "shandong"
city: { name: "jinan" }
}
}
}
它是一个多层的层次关系,就不太好用dt表示。
所以我建议你将json反序列化成对象
然后根据你需要的,将其中的某个List类型的对象,再转换为datatable