json webmethod结果格式错误"渲染数据透视表UI时发生错误"

时间:2015-11-18 07:39:48

标签: jquery vb.net

我正在使用Nicolas的Pivot控件(nicolas.kruchten pivottable),我试图从Web方法绑定json结果。如果我使用预定义的类并将列表作为该类型返回,我可以完成此操作,但是我对数据库的查询并不总是相同,字段将因实例而异。 我使用了多个方法来返回json(序列化程序列表,json序列化字典,数据集AsEnumerable.ToList),所有这些方法都将结果返回给客户端,但格式不正确。

格式应如图1所示,我得到的结果如图2所示。 Figure 1 Figure 2

下面是一个尝试过的方法,如何在没有预定义数组对象类型的情况下将其更改为返回数组结果?

 <System.Web.Services.WebMethod()> _
 Public Shared Function DataTableToJSON()
    Dim strCN As String = "...
    ...

    da.Fill(ds)

    cmd = Nothing
    cn.Close()

    Dim dt As New DataTable()

    If ds.Tables(0).Rows.Count > 0 Then
        Dim list = New List(Of Dictionary(Of String, Object))()

        For Each row As DataRow In ds.Tables(0).Rows
            Dim dict = New Dictionary(Of String, Object)()

            For Each col As DataColumn In ds.Tables(0).Columns
                dict(col.ColumnName) = row(col)
            Next
            list.Add(dict)
        Next
        Dim serializer As New JavaScriptSerializer()
        Return serializer.Serialize(list)
    End If

谢谢

1 个答案:

答案 0 :(得分:0)

问题解决了。 我不得不用jQuery.parseJSON

对字符串进行反序列化
$("#output").pivotUI(jQuery.parseJSON(mps.d));