使用JavaScript读取本地JSON文件(无Web服务器)

时间:2012-12-10 15:10:40

标签: javascript json file

似乎已多次询问过这个问题,但我想确保仍然没有其他选择。

所以我需要做的是:

  1. 从.net(简单)
  2. 生成.JSON文件
  3. 使用JavaScript读取本地JSON文件并生成包含有用图形等的html页面(使用Raphaeljs)。
  4. 将结果(HTML +相关的JavaScript)传递给客户端。
  5. 我不介意安装本地Apache以轻松读取JSON文件,但由于我不能要求客户端执行此操作,我正在寻找一种方法来读取本地JSON文件(在文件系统上,没有Web服务器)使用JavaScript,以便最终为客户端提供HTML,.js和.json,他可以看到相关的图形。

    我一直在读FileReader类是一个选项,但我希望能够灵活地在许多IE浏览器上支持这些(比如IE7到IE10)。

    如何解决这个问题的任何帮助将非常感激。

4 个答案:

答案 0 :(得分:1)

出于安全原因,Web浏览器无法从文件系统读取文件。如果我理解正确,您在本地计算机上运行.NET应用程序?

如果是这种情况,您可以托管WCF服务以从您的应用程序提供JSON。此MSDN page描述了WCF自托管。您应该能够从浏览器向localhost上的应用程序中托管的服务器发出AJAX请求。

答案 1 :(得分:0)

如果你想支持旧的IE,你需要进入ActiveX安全设置地狱。查看var fso = new ActiveXObject("Scripting.FileSystemObject");

但是如果要将内容和HTML文件提供给客户端,为什么不直接将JSON标记添加到html文档中?看起来像EASY解决方案。

答案 2 :(得分:0)

您无法在浏览器中从本地磁盘读取文件(安全限制)。但是,一旦你要提供HTML + js和JSON(在zip?中),你可以从常规的Web服务器上读取json。只需使用相对链接,如果JSON将位于HTML和JS所在的同一文件夹中。或者您可以将您的JSON作为您交付给客户的HTML的一部分。

但是如果要在网站上显示网页(HTML和JS),最好让客户上传他们的JSON文件,然后从服务器下载(采用AJAX风格)。

答案 3 :(得分:-2)

读完文件后,您可以使用eval功能 - 尽管存在安全问题。

http://www.w3schools.com/json/json_eval.asp

然而,实际阅读文件可能会很棘手。