我一直在網上衝浪了很長時間才找到我的問題的答案,我不得不承認我很難過。我想我必須在這裏錯過一些非常簡單的東西,但現在我看不到樹木。從JSON數組中抽取JSON對象
我試圖通過JSON加載高圖,而JSON是由PHP數組創建的(原因是我從MySQL檢索數據。)該系列加載正常,但我無法提取圖表的標題。我的理解是,它的代碼需要像json.title.text ...然而這不起作用並使腳本崩潰。任何幫助將不勝感激!
的PHP陣列是如下(I已經把虛擬變量來簡化...):
$arr =
array (
array (
'title' => array (
'text' => 'idiot'
),
'data' => array (
'2012-12-16; 0',
'2012-12-16; 23'
)
),
array (
'name' => 'Sacred cows',
'data' => array (
98.9914,
99.5429
)
),
);
echo json_encode($arr);
生成該圖表中的JavaScript是如下:
function marketwidget(id){
var formData = "name="+ id + "&age=31";
$.ajax({
url : "marketwidget.php",
type: "POST",
data: formData,
success: function(data, textStatus, jqXHR)
{
var json = JSON.parse(data)
var len = json.length
i = 0;
var options = {
title: {
text: []
},
xAxis: {
categories: []
},
series: []
}
options.title.text = json.title.text
for (i; i < len; i++) {
if (i === 0) {
var dat = json[i].data,
lenJ = dat.length,
j = 0,
tmp;
for (j; j < lenJ; j++) {
tmp = dat[j].split(';');
options.xAxis.categories.push(tmp[0]);
}
} else {
options.series.push(json[i]);
}
}
$('#container').highcharts('StockChart', options);
},
error: function(jqXHR, textStatus, errorThrown)
{
}
});
}
[有沒有這樣的事情作爲一個 「JSON對象」(http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/)。爲什麼不使用jQuery的功能來創建查詢字符串?現在,您必須使用['encodeURIComponent'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent)正確編碼查詢字符串參數。你也可以使用'json'作爲'$ .post'的最後一個參數,所以你不必手動使用'JSON.parse',這可能不可用。 –
您是否在響應數據上嘗試了'console.log'?從那裏開始結構往往很容易。 – David
您的json結構不是以可輕鬆迭代的方式構建的。元數據應該與結果分開。這或者你不需要重複它。 –