在Asp.Net中将Datatable转换为Json对象

在Asp.Net中将Datatable转换为Json对象,asp.net,json,vb.net,Asp.net,Json,Vb.net,我是来自印度尼西亚的Joines。我想询问如何将我的datatable转换为json对象。我正在使用asp.net和Vb。如何将datatable转换为Json,如下所示: { "awb": "81903054216", "detail": { "shipped_date": "23-06-2016 08:24:00", "delivered_date": "24-06-2016 10:54:00", "services_code": "reguler", "actual_amount"

我是来自印度尼西亚的Joines。我想询问如何将我的datatable转换为json对象。我正在使用asp.net和Vb。如何将datatable转换为Json,如下所示:

    {
"awb": "81903054216",
"detail":
{
"shipped_date": "23-06-2016 08:24:00",
"delivered_date": "24-06-2016 10:54:00",
"services_code": "reguler",
"actual_amount": 33150,
"weight": 1000,
"final_status": 200,
"sender": {
"name": "ABCD",
"addr": "JL. ABCD",
"zipcode": 12345,
"city": "XXXX",
"geoloc": "xxx.bbb, xxx.aaa"
},
"receiver":{
"name": "BCDA",
"addr": "JL. BCDA",
"zipcode": 12345,
"city": "XXXX",
"geoloc": "xxx.bbb, xxx.aaa"
},
"driver":{
"id": "940184928",
"name": "driver A",
"phone": "12303523941",
"photo": ".com/potonya.jpg"
}
},
"history": [
{
"date_time": "20-JUN-2016 12:54:00",
"city_name": "XXXX",
"status": "manifested",
"status_code": 101,
"note": "something something",
"receiver": ""
},
{
"date_time": "21-JUN-2016 10:54:00",
"city_name": "XXXX",
"status": "Pickup Failed",
"status_code": 151,
"note": "something 1",
"receiver": ""
},
{
"date_time": "23-JUN-2016 12:54:00",
"city_name": "XXXX",
"status": "Shipping",
"status_code": 100,
"note": "something 2",
"receiver": ""
},
{
"date_time": "24-JUN-2016 10:54:00",
"city_name": "YYYY",
"status": "Delivered",
"status_code": 200,
"note": "something 3",
"receiver": "SETYAWAN"
}
]
}
提前感谢您的回复:

对于VB

 Public Function ConvertDataTabletoString() As String
    Dim dt As New DataTable()
    Using con As New SqlConnection("Data Source=SureshDasari;Initial Catalog=master;Integrated Security=true")
    Using cmd As New SqlCommand("select title=City,lat=latitude,lng=longitude,description from LocationDetails", con)
    con.Open()
    Dim da As New SqlDataAdapter(cmd)
    da.Fill(dt)
    Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
    Dim rows As New List(Of Dictionary(Of String, Object))()
    Dim row As Dictionary(Of String, Object)
    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)
    End Using
    End Using
    End Function   
对于C

对于VB

对于C


通过这样做,您可以将数据表转换为JSON格式

Public Function GetJson(ByVal dt As DataTable) As String

     Return New JavaScriptSerializer().Serialize(From dr As DataRow In dt.Rows Select dt.Columns.Cast(Of DataColumn)().ToDictionary(Function(col) col.ColumnName, Function(col) dr(col)))

End Function

通过这样做,您可以将数据表转换为JSON格式

Public Function GetJson(ByVal dt As DataTable) As String

     Return New JavaScriptSerializer().Serialize(From dr As DataRow In dt.Rows Select dt.Columns.Cast(Of DataColumn)().ToDictionary(Function(col) col.ColumnName, Function(col) dr(col)))

End Function
这么简单

首先添加nuget包Newtonsoft.json 而不是像这样把它包括在你的项目中

using Newtonsoft.Json
像这样将datatable转换为json

return JsonConvert.SerializeObject(dt, Newtonsoft.Json.Formatting.Indented);
这么简单

首先添加nuget包Newtonsoft.json 而不是像这样把它包括在你的项目中

using Newtonsoft.Json
像这样将datatable转换为json

return JsonConvert.SerializeObject(dt, Newtonsoft.Json.Formatting.Indented);

来自的此代码段的可能重复可能会对您有所帮助。来自的此代码段的可能重复可能会对您有所帮助。OP需要VB.net中的解决方案:尽管使用C.net将datatable转换为JSON是正确的方法。Nice.OP需要VB.net中的解决方案:尽管使用C.net将datatable转换为JSON是正确的方法。美好的