Jquery json webmethod结果格式不正确”;呈现数据透视表UI时出错;

Jquery json webmethod结果格式不正确”;呈现数据透视表UI时出错;,jquery,vb.net,Jquery,Vb.net,我正在使用Nicolas的Pivot控件(Nicolas.kruchten pivottable),并尝试从web方法绑定json结果。如果我使用预定义的类并将列表作为该类型返回,我可以实现这一点,但是我对数据库的查询并不总是相同的,各个实例的字段会有所不同。 我使用了多种方法返回json(serializer list、json serialize dictionary、dataset AsEnumerable.ToList),所有这些方法都将结果返回到客户端,但格式不正确 格式应该如图1所示

我正在使用Nicolas的Pivot控件(Nicolas.kruchten pivottable),并尝试从web方法绑定json结果。如果我使用预定义的类并将列表作为该类型返回,我可以实现这一点,但是我对数据库的查询并不总是相同的,各个实例的字段会有所不同。 我使用了多种方法返回json(serializer list、json serialize dictionary、dataset AsEnumerable.ToList),所有这些方法都将结果返回到客户端,但格式不正确

格式应该如图1所示,我得到的结果如图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
_
公共共享函数DataTableToJSON()
Dim strCN As String=“。。。
...
da.填充(ds)
cmd=无
cn.Close()
Dim dt作为新数据表()
如果ds.Tables(0).Rows.Count>0,则
Dim list=新列表(字典(字符串、对象))()
对于ds.Tables(0.Rows)中作为DataRow的每一行
Dim dict=新字典(字符串、对象)()
对于ds.Tables(0.Columns)中作为DataColumn的每个列
dict(列名称)=行(列)
下一个
列表。添加(dict)
下一个
Dim序列化程序作为新的JavaScriptSerializer()
返回序列化程序。序列化(列表)
如果结束
谢谢

问题解决了。 我必须用jQuery.parseJSON反序列化字符串

$("#output").pivotUI(jQuery.parseJSON(mps.d));