使用JSON

时间:2016-08-31 05:26:00

标签: javascript jquery arrays json morris.js

我需要使用Morris Charts绘制动态数组图。该数组是一个动态矩形数组(具有可变数量的列),如下所示:

Rectangular Array

我尝试使用JSON将其传递给Morris Charts。这是我的代码:

 function SHOWGRAPH() {

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "/samplepage.aspx/SHOW_GRAPH",
            data: "",
            dataType: "json",
            success: function(data) {
            
                 
              for (var i = 0; i < data.d.length; i++) {
              
                Morris.Area({ 
                     
                    element: 'myfirstchart',
                    data:data.d,
                    xkey: data.d[0],
                    ykeys: [data.d[i]],
                    hideHover: 'auto',
                    resize: true,                    
                     
                })
                };
               
            }

        });
    } 
    

由于数据集不匹配,我收到错误:

 TypeError: a is undefined

我想问一下是否有人知道如何将矩形阵列正确传递给Morris Chart。通常,我只使用一个类来传递数据。但是,在这种情况下,我需要传递的数据结构是动态的。

提前致谢。

1 个答案:

答案 0 :(得分:2)

在这里,您似乎没有在POST请求正文中传递任何数据。如果这不需要请求正文,您应该考虑将其作为GET请求。无论哪种方式,如果响应是JSON格式,如下所示:

{ "data": {
    "d": {
        [ a: []],
        [ a: []],
        [ a: []],
        [ a: []],
        [ a: []]
        }
}

那么理想情况下你应该循环两次:

data.d.forEach(function(data) {
    Morris.Area({ 

                element: 'myfirstchart',
                data:data,
                xkey: data.a.forEach(function(item){
                           //Do what you want with this array
                        }),
                ykeys: [data],
                hideHover: 'auto',
                resize: true,                    

            })
            };
});