Javascript JSON输出的格式不工作

Javascript JSON输出的格式不工作,javascript,php,ajax,json,highcharts,Javascript,Php,Ajax,Json,Highcharts,我对JSON格式有问题。我的目标是使用通过ajax从php提取的数据生成highcharts图表。我终于让它全部工作,除了数据输出的格式有一些问题 因此,在我的data.php文件中,我有: $result = array(); $result['name'] = '2013'; $x = mysqli_query($con," SELECT Logdatetime, Temp FROM alldata LIMIT 12" ); while($r = mysqli_f

我对JSON格式有问题。我的目标是使用通过ajax从php提取的数据生成highcharts图表。我终于让它全部工作,除了数据输出的格式有一些问题

因此,在我的data.php文件中,我有:

$result = array();
$result['name'] = '2013';
$x = mysqli_query($con,"
    SELECT Logdatetime, Temp
    FROM alldata 
    LIMIT 12"
);

while($r = mysqli_fetch_array($x)){
$result['data'][] = $r['Temp'];
}

print json_encode($result, JSON_NUMERIC_CHECK);
当我尝试时,输出如下所示:

{"name":2013,"data":[-1.4,-1.4,-1.3,-1.3,-1.3,-1.3,-1.3,-1.2,-1.3,-1.2,-1.2,-1.2]}
$.ajax({
    url : 'data.php',
    datatype : 'json',
    success : function (json) {
        alert(json);
        options.series[0].name = json['name'];
        options.series[0].data = json['data'];
        chart = new Highcharts.Chart(options);
    },
});
}
然后在我的主页中,我有如下AJAX调用:

{"name":2013,"data":[-1.4,-1.4,-1.3,-1.3,-1.3,-1.3,-1.3,-1.2,-1.3,-1.2,-1.2,-1.2]}
$.ajax({
    url : 'data.php',
    datatype : 'json',
    success : function (json) {
        alert(json);
        options.series[0].name = json['name'];
        options.series[0].data = json['data'];
        chart = new Highcharts.Chart(options);
    },
});
}
我将警报放在那里检查数据,结果与上面由PHP生成的结果相同,因此看起来是正确的。但是,解析“data”和“name”中包含的数据时肯定会有一些问题,换句话说,如果我把:

options.series[0].name = json['name'];
未插入任何内容(警报生成“未定义”),例如:

options.series[0].name = json[1];

然后我得到第二个字符的名字。这意味着AJAX对JSON输出的解释肯定有问题,但我无法找出问题所在。

您还需要将
数据
放在第二行中。。。试试这个:

options.series[0].name = json.name;
options.series[0].name = json.data[0];

jQuery
$.ajax
属性是“数据类型”,而不是“数据类型”。如果未正确设置数据类型,则会将原始字符串作为回调的参数

$.ajax({
    url : 'data.php',
    dataType : 'json', // <--- note the capital "T"
    success : function (json) {
        alert(json);
        options.series[0].name = json['name'];
        options.series[0].data = json['data'];
        chart = new Highcharts.Chart(options);
    }, // <--- GET RID OF THIS COMMA
});
$.ajax({
url:'data.php',

dataType:'json',//options的值从何而来?如何声明和初始化?options.series[0].name=json[0];给了我一个引号,因此数据似乎没有用json编码,因为它将引号视为第一个字符var options={chart:{renderTo:'container',type:'spline',zoomType:'x',},series:[{name:'',data:[]}};这工作正常,我尝试硬编码了一些数字,结果成功了。是的,您得到了一个字符串,因为您发送到
$.ajax()的选项
不正确-请看我的答案。哦,我的上帝……我爱你……:D我花了好几个小时尝试一切,研究互联网等……就这一个愚蠢的大写字母,一切都很有效……谢谢!@user2370078很高兴能帮上忙!我花了好长时间才看到它!@user2370078下次您可以使用服务或检查代码时。