我已经冲浪了很长时间才能找到问题的答案,我不得不承认我很难过。我想我必须在这里找到一些非常简单的东西,但是现在我看不到树木了。
我正在尝试通过JSON加载高图,而JSON是由PHP数组创建的(原因是我从MySQL检索数据。)该系列正在加载正常,但我无法提取标题对于图表。我的理解是,代码需要像json.title.text ...但是这不起作用并且崩溃了脚本。任何帮助将不胜感激!
PHP数组如下(我已将虚拟变量放在简化中......):
$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)
{
}
});
}
答案 0 :(得分:3)
您正在阅读已解析的json的方式不正确。当我尝试json[i].title.text
时,我能够访问该标题。
行中缺少数组索引:options.title.text = json.title.text
。您可以尝试使用options.title.text = json[0].title.text
。
<script>
var json = JSON.parse('[{"title":{"text":"idiot"},"data":["2012-12-16; 0","2012$
for (var i = 0; i < json.length; i++) {
document.write(json[i].title.text);
}
</script>