2015-01-05 2 views
0

Попытка изменить формат JSON, чтобы сделать его доступным для графиков Google. Содержание JSON работает нормально и в настоящее время отображения этого на браузер:Отображаемая таблица не имеет столбцов с использованием графиков Google

[["name","cost"],["godzilla",12],["harry potter",12]] 

Задача состоит в том выполняется с помощью пружинного контроллера

@RequestMapping(value = "api/productschart", method = RequestMethod.GET) 

    public @ResponseBody 
    String listProductsJsonChart() throws JSONException { 

    JSONArray ProductArray = new JSONArray(); 
    JSONArray ProductHeader = new JSONArray(); 

    ProductHeader.put("id"); 
    ProductHeader.put("cost"); 

    ProductArray.put(ProductHeader); 


    for (Product product : productRepository.findAll()) { 
     JSONArray ProductJSON = new JSONArray(); 

     ProductJSON.put(product.getId()); 
     ProductJSON.put(product.getCost()); 

     ProductArray.put(ProductJSON); 
    } 
    return ProductArray.toString(); 
} 

Секция JavaScript

<script type="text/javascript"> 

google.load("visualization", "1", {packages:["corechart"]}); 
google.setOnLoadCallback(drawChart); 
function drawChart() { 

    var jsonData = $.ajax({ 
    url: "http://localhost:8081/api/productschart", 
    dataType: "json", 
    async: false 
    }).responseText; 


    var data = new google.visualization.DataTable(jsonData); 



    var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); 

    chart.draw(data); 
} 
</script> 
+3

JSON строки * всегда * двойные кавычки. –

+0

, так как я могу внести какие-либо изменения, чтобы сделать его доступным для графиков Google? –

+0

Google Charts поддерживает JSON, поэтому он должен быть двойным кавычками. Ваша проблема должна быть в другом месте. Какое сообщение об ошибке вы получаете? –

ответ

1

Примеры на страницах Google используются одинарные кавычки, потому что они используют JavaScript для создания объектов, а JavaScript поддерживает как одиночные, так и двойные кавычки. JSON, с другой стороны, требует двойных кавычек.

таблица не имеет столбцов

Из примера на https://developers.google.com/chart/interactive/docs/gallery/columnchart#Data_Format, я думаю, что ваш JSON должен выглядеть следующим образом:

[["id","cost"],["1",12]] 

т.е. первый элемент в части данных потребностей массива быть строкой. В вашем случае это число.

+0

Я заменяю атрибут. Теперь вывод: [[«имя», «стоимость»], [«godzilla», 12], [«harry potter», 12]], но все еще показ таблицы не имеет столбцов –

+0

Посмотрите внутри 'jsonData' на клиент. Войдите в консоль. Это длинная строка или массив? –

+0

используется javascript консоль google chrome. заявив, что ** Не удалось загрузить ресурс: сервер ответил статусом 404 (не найден) **. Это ошибка? –

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