【发布时间】:2013-10-23 14:15:56
【问题描述】:
我在 ASP.NET 中有这个函数可以将 DataTable 转换为 JSON 字符串:
Public Function GetJson(ByVal dt As DataTable) As String
Dim serializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer()
Dim rows As New List(Of Dictionary(Of String, Object))
Dim row As Dictionary(Of String, Object)
Try
For Each dr As DataRow In dt.Rows
row = New Dictionary(Of String, Object)
For Each col As DataColumn In dt.Columns
row.Add(col.ColumnName, dr(col))
Next
rows.Add(row)
Next
Return serializer.Serialize(rows)
Catch ex As Exception
logFile("SP GetJson ----" + ex.Message)
Return "-1"
End Try
End Function
我的 json 会是这样的:
{
"category": [
{
"id": "1",
"desc": "default",
},
{
"id": "2",
"desc": "fun",
}
],
"images": [
{
"image ID": "1",
"link": "images/logo.jpg"
"category": "1"
},
{
"image ID": "2",
"link": "images/logo2.jpg"
"category": "2"
}
]
}
但现在我有一个包含 2 个DataTables 的列表,我需要将其转换为一个包含 2 个数组的 JSON 字符串,有什么想法吗?
【问题讨论】:
-
您是否尝试过将
DataTables 合并为一个,然后调用从DataTable到JSON 逻辑的转换? -
@KarlAnderson 实际上如果我将 2 个
datatables 合并为 1 个datatable我将在 json 字符串中只有一个数组.. 但实际上我需要在 json 中有 2 个数组带有 2 个根标签的字符串.. -
@KarlAnderson 换句话说我有 2 个数据表,我需要将它们转换为一个 json 字符串,但我需要 json 数组中的每个数据表在同一个字符串中
-
您能添加一个您想要实现的 JSON 字符串的简短示例吗?
-
@IvanH 我编辑了我的问题并添加了我需要的 json 格式
标签: asp.net json vb.net datatable vb.net-2010