簡體   English   中英

JSON輸出的格式無效

[英]Format of JSON output not working

我有JSON格式的問題。 我的目標是生成一個highcharts圖表,其中的數據是通過ajax從php中提取的。 我終於完成了所有工作,除了數據輸出的格式有問題。

所以,在我的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調用:

$.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輸出的解釋肯定存在一些問題,但我無法弄清問題是什么。

jQuery $.ajax屬性是“dataType”,而不是“datatype”。 如果未正確設置數據類型,則將原始字符串作為回調的參數。

$.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
});

您還需要將data放入第二行...試試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM