2013-05-25 2 views
0

Я пытаюсь разобрать данные из JSON сконструированные в файле PHP на основе этого руководства:Google Диаграммы JSON погрузочные двойные кавычки

https://google-developers.appspot.com/chart/interactive/docs/php_example?hl=en

Я создал свой JSON в хорошем смысле, но когда я использую это код, кажется, что он не читает JSON хорошо:

function drawChart() { 
    var jsonData = $.ajax({ 
     url: "loader.php", 
     dataType:"json", 
     async: false 
     }).responseText; 

Я думаю, что есть некоторые проблемы с двойными кавычками в клавишах JSON со времени в this example объект Javascript не кавычки. Так где-то я должен что-то пропустить?

Мои сценарии код:

<script type="text/javascript"> 

     // Load the Visualization API and the piechart package. 
     google.load('visualization', '1.0', {'packages':['corechart']}); 

     // Set a callback to run when the Google Visualization API is loaded. 
     google.setOnLoadCallback(drawChart); 


     function drawChart() { 

     var jsonData = $.ajax({ 
       dataType:"json", 
       url: "loader.php", 
       async: false 
       }).responseText; 

     // Create our data table out of JSON data loaded from server. 
     var data = new google.visualization.DataTable(jsonData); 



     // Instantiate and draw our chart, passing in some options. 
     var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
     chart.draw(data, {title: 'Results', width: 400, height: 240}); 

    } 
    </script> 

И исходный код, что мои loader.php возвратов:

{"cols": 
    [{"label":"Sources","type":"string"}, 
    {"label":"Count","type":"number"}], 
"rows": 
    [{"c":[{"v":"web"},{"v":"4757"}]}, 
    {"c":[{"v":" iPhone"},{"v":"4324"}]}, 
    {"c":[{"v":"Android"},{"v":"3294"}]}, 
    {"c":[{"v":"BlackBerry\u00ae"},{"v":"2336"}]}, 
    {"c":[{"v":"Instagram"},{"v":"951"}]} 
    ]} 

Примечание: На диаграмме нагрузки также без ошибок, но не загружает JSON. В нем говорится: Другие 100%. Таким образом, ни метки, ни строки не загружаются по правилу.

+1

вы уверены, что не нагружает JSON ? Номера на самом деле не являются цифрами, поэтому Google не может отображать круговую диаграмму (поскольку для отображения нет значений). Что отображается после запуска кода? Что такое предупреждение «alert (data.getValue (1,1))?? – jmac

ответ

0

Значения не должны указываться. Снимите котировки, например

var jsonData={"cols": 
    [{"label":"Sources","type":"string"}, 
    {"label":"Count","type":"number"}], 
"rows": 
    [{"c":[{"v":"web"},{"v":4757}]}, 
    {"c":[{"v":" iPhone"},{"v":4324}]}, 
    {"c":[{"v":"Android"},{"v":3294}]}, 
    {"c":[{"v":"BlackBerry"},{"v":2336}]}, 
    {"c":[{"v":"Instagram"},{"v":951}]} 
    ]}; 

И диаграмма работает.

NB: Осознайте BlackBerry \ u00ae, у вас есть некоторые декодирования/кодирования вопрос в вашем loader.php (но это не то, что вызвало проблемы)

Смежные вопросы