高图解析json数据

时间:2013-09-06 15:21:47

标签: php json highcharts

最愚蠢的怀疑可能无法解决.. :( 我试图回应下面的结果需要用逗号分隔每个日期,但到最后一个日期(元素)我得到一个额外的逗号..如何解决这个问题..请帮助

[[Date.UTC(2012,01,26),17],[Date.UTC(2012,01,27),14],]

我的回复代码

echo "[";
while($row=mysql_fetch_array($result))
 {      
   echo "[Date.UTC(".$row ['date']."),".$row['frequency']."],";
      }
 echo "]";

由于此错误,我无法将json数据解析为highcharts .. 我的高图表代码..请让我知道我在highcharts中出错..

  <script> 
  var chart;
   $(document).ready(function () {
     chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container1',
        type: 'area'
          },

    yAxis: {
        type: 'double',
        min: 0
    },
    xAxis: {
        type: 'datetime',
        labels: {
            formatter: function () {
                return Highcharts.dateFormat('%b %y', this.value);
            },
            dateTimeLabelFormats: {

                month: '%b \'%y',
                year: '%Y'
            }
        }
        },
       series: [{
        name: 'Total Views',
        data: []
        }, ]

      });

     chart.series[0].setData(

   });
   </script>

  <script>    
   $.getJSON('data.php', function(data) 
   {
  chart.series[0].append(data);
         }   

    </script>


 <div id="container1" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
 </body>
 </html> 

2 个答案:

答案 0 :(得分:0)

你必须解决这个问题。 第一个是用substr删除最新的“,”。 第二个是这样做

echo "[";
$result = array();
while($row=mysql_fetch_array($result))
{      
   $result[] = "[Date.UTC(".$row ['date']."),".$row['frequency']."]";
}
echo implode(',', $result);
echo "]";

答案 1 :(得分:0)

不要将,嵌入到您正在构建的字符串中。构建一个字符串数组,然后将其内爆:

$data = array();
while($row=mysql_fetch_array($result))
   $data[] = "[Date.UTC({$row['date']}),{$row['frequency']}]";
}

$string = implode(',', $data);

Tada,没有额外的,