jQuery Sparklines:无法读取$ .getJSON数据

时间:2013-10-27 21:39:45

标签: jquery json sparklines

我正在尝试使用Sparklines生成饼图,但我遇到了一些麻烦。我似乎无法弄清楚我做错了什么,但我觉得这是一个愚蠢的错误。

我正在使用以下代码在div #traffic_bos_ss 中生成一个迷你图表:

//Display Visitor Screen Size Stats
$.getJSON('models/ucp/traffic/traffic_display_bos.php',
{   
    type: 'ss',
    server: server,
    api: api,
    ip: ip,
},
function(data)
{
    var values = data.views;
    //alert(values); 


    $('#traffic_bos_ss').sparkline(values,
    {
        type: "pie",
        height: "100%",
        tooltipFormat: 'data.screen - {{value}}',

    });
});

获取的JSON字符串:

{"screen":"1220x1080, 1620x1080, 1920x1080","views":"[2, 2, 61]"}

出于某种原因,Sparklines不会处理变量。当我警告变量时,它输出“[2,2,61]”。现在,当我替换片段时,jQuery代码可以正常工作:

 var values = data.views;

 var values = [2, 2, 61];

我做错了什么?

1 个答案:

答案 0 :(得分:1)

你说你对getJSON的调用是返回“views”,它有一个字符串作为其值:

"[2, 2, 61]"

但是,当您将代码更改为:

var values = [2, 2, 61];

在这种情况下,您正确指定了一个包含三个整数的数组。

更改返回JSON的方法,使其正确返回“视图”的整数数组,而不是单个字符串,即

{"screen" : "1220x1080, 1620x1080, 1920x1080", "views": [2, 2, 61] }

请参阅jsFiddle here

另外你说你对$ .getJSON的调用是有效的,但你写的方法调用是不正常的。有关jQuery的getJSON文档,请参阅here

以下内容应该有效:

var values;
$.getJSON( "models/ucp/traffic/traffic_display_bos.php", function(data) {
  values = data.views;
});

$('#traffic_bos_ss').sparkline(values,
{
 type: "pie",
 height: "100%",
 tooltipFormat: 'data.screen - {{value}}'
});