我正在做一个需要我可视化相当复杂类型的数据的项目(请参阅这个较早的问题)。简而言之,我有大量数据可以导出为 JSON、CSV 或其他任意平面格式,尽管我更愿意尽可能避免使用 XML(有关基础数据的详细说明,请参阅上面的链接问题)。
我已经开始使用 D3 进行可视化,到目前为止,当我使用一些非常简单的数据进行测试时,我编写的布局似乎工作正常,这些数据我在 Javascript 中硬编码为数组。我在 D3 中阅读的有关数据绑定的教程有点令人困惑,因为有些使用 JSON,有些使用 TXT/CSV 格式,而另一些使用硬编码的数组/矩阵。
对于 JSON,我观看了一个教程,其中叙述者强烈建议将 JSON 文件托管在网络服务器上,并使用 HTTP 请求而不是读取本地文件来获取它。我意识到这是由于跨域请求限制,我相信我必须以某种方式解决。在这一点上,我不确定如何进行,因为:
D3 驱动的可视化将出现在一系列 HTML 报告中,这些报告是作为我编写的分析工具的结果创建的。分析在用户计算机上完成,HTML 报告也在客户端本地创建。
目标用户绝对不是精通技术的,因此不能指示他们在他们的计算机上运行网络服务器以便能够通过 localhost 提供 JSON 或任何其他类型或资源
作为记录,我尝试运行 python SimpleHTTPServer 模块进行尝试,一切正常。然后我尝试在生成的 HTML 报告中对数据进行硬编码,然后从使用 D3 的脚本中调用 JSON 对象,
//d3.json("mydata.json", function(json){
d3.json(myjson, function(json){
nodeData = json.elements;
....
}
这失败了,因为在这种情况下,我最终发送了一个 JSON 对象,而 D3.js 期待一个 URL。
我能做些什么来避免/解决这个问题?