Я работаю над проектом, который требует, чтобы я визуализировал довольно сложный тип данных (см. этот старый вопрос). Короче говоря, у меня есть большой кусок данных, которые я могу экспортировать в JSON, CSV или какой-либо другой произвольный формат, хотя я предпочитаю избегать XML, если это возможно (см. Связанный вопрос выше для подробного объяснения базовых данных).
Я начал работать над визуализацией с использованием D3, макет, который я написал, кажется, работает нормально до сих пор, когда я тестирую его с помощью очень простых данных, которые я жестко кодирует в Javascript как массив. Учебники, которые я прочитал о привязке данных в D3, были немного запутанными в том смысле, что некоторые используют JSON, а некоторые используют формат TXT/CSV, а некоторые другие используют жестко заданные массивы/матрицы.
В случае JSON я просмотрел учебник, в котором рассказчик твердо советует размещать файл JSON на веб-сервере и получать его с использованием HTTP-запроса вместо локального файла. Я понимаю, что это связано с ограничениями, связанными с перекрестными доменами, и я считаю, что мне нужно как-то обойтись. На данный момент я не уверен, как действовать, начиная с:
-
Визуализация, основанная на D3, будет представлена в серии отчетов HTML, которые создаются в качестве результатов инструмента анализа, который я написал. Анализ выполняется на компьютере пользователя, а отчеты HTML также создаются локально на стороне клиента.
-
Предполагаемые пользователи наиболее определенно не разбираются в технологиях, поэтому не обязательно указывать им запускать веб-сервер на своем компьютере, чтобы иметь возможность обслуживать JSON или любой другой тип или ресурс через localhost
Для записи я попытался запустить модуль python SimpleHTTPServer, чтобы попробовать, и снова все работает нормально. Затем я попытался жестко закодировать данные в сгенерированных отчетах HTML, а затем вызвать объект JSON из моего script, который использует D3,
//d3.json("mydata.json", function(json){
d3.json(myjson, function(json){
nodeData = json.elements;
....
}
так как в этом случае я заканчиваю отправку в объект JSON, а D3.js ожидает URL.
Что я могу сделать, чтобы избежать/решить эту проблему?