'datatables2json
Dim names() As String = {"id", "cp", "kh", "gy", "sl", "dj", "zk", "je", "rq"}
Dim caps() As String = {"_identify", "产品", "客户", "雇员", "数量", "单价", "折扣", "金额", "日期"}
Dim zd As New Dictionary(Of String, String)
For i As Integer = 0 To names.Length - 1
zd.Add(names(i), caps(i))
Next
'生成json数据
Dim t As DataTable = DataTables("订单")
Dim arr As New JArray '数据记录数组
For i As Integer = 0 To t.DataRows.Count - 1 '遍历datatable记录
arr.Add(New jobject) '每遍历一条记录就增加一个对象,以保存记录数据
Dim r As DataRow = t.DataRows(i)
For Each key As String In zd.Keys
If key = "id" Then
arr(i)("id") = val(r(zd(key)))
Else If t.DataCols(zd(key)).IsString Then
If r.isnull(zd(key)) Then
arr(i)(key) = ""
Else
arr(i)(key) = CStr(r(zd(key)))
End If
Else If t.DataCols(zd(key)).IsNumeric Then
If r.isnull(zd(key)) Then
arr(i)(key) = 0
Else
arr(i)(key) = val(r(zd(key)))
End If
Else If t.DataCols(zd(key)).IsBoolean Then
arr(i)(key) = CBool(r(zd(key)))
Else If t.DataCols(zd(key)).IsDate Then
If r.isnull(zd(key)) Then
arr(i)(key) = ""
Else
arr(i)(key) = CStr(r(zd(key)))
End If
End If
Next
Next
Dim obj As New JObject '创建一个新对象obj
obj("total") = t.DataRows.Count '在obj中以total保存记录总数
Output.Show(arr.ToString)