为什么';t flot是否使用(x,y)值数组?Javascript对象与数组?

为什么';t flot是否使用(x,y)值数组?Javascript对象与数组?,javascript,jquery,flot,Javascript,Jquery,Flot,我正在使用一些php脚本创建一个flot图。php生成数据,并使用json\u encode将该数据传递给一些javascript flot代码,我使用jQuery.parseJson进行解析 我使用的是填充了(x,y)值的数据-数组。策划这个似乎不起作用。如果我将数组封装在一个对象中,flot就可以毫无问题地绘制它。为什么第一种方法不起作用?我在下面添加了一个jsFiddle var data = '[["201518","1"],["201519","3"],["201520","6"]]'

我正在使用一些php脚本创建一个flot图。php生成数据,并使用
json\u encode
将该数据传递给一些javascript flot代码,我使用
jQuery.parseJson
进行解析

我使用的是填充了(x,y)值的
数据
-数组。策划这个似乎不起作用。如果我将数组封装在一个对象中,flot就可以毫无问题地绘制它。为什么第一种方法不起作用?我在下面添加了一个jsFiddle

var data = '[["201518","1"],["201519","3"],["201520","6"]]',
    data2 = '{"data":[["201518","1"],["201519","3"],["201520","6"]]}';

var set = jQuery.parseJSON(data),
    set2 = jQuery.parseJSON(data2);

var placeholder = $('#placeholder');
$.plot(placeholder, [set2.data]);
//$.plot(placeholder, set); <= not working? Why?
var数据='[“201518”、“1”]、[“201519”、“3”]、[“201520”、“6”],
数据2=“{”数据“:[“201518”,“1”],[“201519”,“3”],[“201520”,“6”]}”;
var set=jQuery.parseJSON(数据),
set2=jQuery.parseJSON(data2);
变量占位符=$(“#占位符”);
$.plot(占位符[set2.data]);

//$.plot(占位符,集合) 您需要传递一个数组:

$.plot(placeholder, [set])
// instead of `$.plot(placeholder, set)`

两个问题。首先,当作为数组传递时,需要的是数字,而不是字符串(请参见其中的说明)

注意,为了简化Flot中的内部逻辑,x和y 值必须是数字(即使指定了时间序列,有关详细信息,请参见下文) 这是一个常见的问题,因为您可能会检索 将数据库中的数据直接序列化为JSON,而无需 注意到错误的类型。如果你有神秘的错误,加倍 检查您输入的是数字而不是字符串

其次(正如另一个答案中所指出的),您需要[array]环绕集合。以下工作:

$(document).ready(function () {
    var data = '[[201518,1], [201519,3], [201520,6]]',
        data2 = '{"data":[["201518","1"],["201519","3"],["201520","6"]]}';

    var set = jQuery.parseJSON(data),
        set2 = jQuery.parseJSON(data2);

    var placeholder = $('#placeholder');
    //$.plot(placeholder, [set2.data]);
    $.plot(placeholder, [set]);
});
请参阅-在数组格式中,它们必须是数字而不是字符串。但是,这似乎并不能解决问题。