#javascript #jquery #json #highcharts
#javascript #jquery #json #highcharts
Вопрос:
При загрузке внешнего файла JSON в HighCharts он ничего не показывает в браузере. У меня есть следующие данные JSON. Я включил highchart.js и jquery.js в head
моем HTML-коде, но я все еще не могу получить гистограмму в своем браузере. При проверке консоли ошибка не отображается в консоли.
var json = [{
"key": "Apples",
"value": "4"
}, {
"key": "Pears",
"value": "7"
}, {
"key": "Bananas",
"value": "9"
}];
var processed_json = new Array();
$.map(json, function(obj, i) {
processed_json.push([obj.key, parseInt(obj.value)]);
});
$('#container').highcharts({
chart: {
type: 'column'
},
xAxis: {
type: "category"
},
series: [{
data: processed_json
}]
});
Комментарии:
1. Попробуйте использовать статические данные вместо файла json и проверьте, работает ли это, может быть проблема с данными.
2. не работает, когда данные json используются внутри <script>
Ответ №1:
Это потому, что порядок выполнения отличается от ожидаемого. т.е. Выполнение раздела загрузки JSON происходит до его инициализации.
Вы можете поместить код раздела загрузки JSON в одну функцию и вызвать эту функцию после завершения инициализации (.success или .done в событии элемента HTML).
У меня была одна AJax-функция, поэтому я вызвал эту функцию загрузки JSON при успешном выполнении этого AJAX-вызова.
Код:
var json = [{
"key": "Apples",
"value": "4"
}, {
"key": "Pears",
"value": "7"
}, {
"key": "Bananas",
"value": "9"
}];
var processed_json = new Array();
$.map(json, function(obj, i) {
processed_json.push([obj.key, parseInt(obj.value)]);
});
if (processed_json.length != 0) {
loadJson();
}
function loadJson() {
$('#container').highcharts({
chart: {
type: 'column'
},
xAxis: {
type: "category"
},
series: [{
data: processed_json
}]
});
}
Комментарии:
1. не понимаю, что вы имеете в виду? Объясните с помощью кода #Санджай Кумар N S
2. Убедитесь, что элемент с идентификатором = container присутствует, а переменная JSON processed_json инициализирована должным образом.
3. да, идентификатор = контейнер присутствует в <div> . Можете ли вы предоставить выходные данные с помощью JSFiddle
4. Здесь я смог обнаружить, что переменная processed_json не находится в допустимом формате JSON, который вы ожидаете. Когда я попробовал использовать переменную json, она сработала. У меня нет вашего полного кода, даже тогда я пытался использовать образец. Демонстрация: jsfiddle.net/sanjaykumarns/VtVFB/612