JQuery .getJson不会加载本地文件以及如何转换为JavaScript对象。

时间:2013-01-07 20:56:56

标签: javascript jquery html json getjson

嘿伙计们我正在尝试学习如何使用JSON文件。我理解基础知识,但我试图抓住将它们加载到HTML文件中,我遇到了一些困难。

我遇到的第一个困难是,如果我输入完整的文件扩展名来加载文件,我会收到错误'预期的十六进制数字'。我做了一些研究,我认为这是因为在文件扩展名中它是\ u所以它期待一个十六进制,但我不知道如何解决它。

我遇到的第二个问题是,如果我只使用文件扩展名users.json,它可以在我的编辑器中使用,但不能在浏览器中使用。它根本没有加载文件,代码很好(我相信)。我认为由于文件扩展,它只是没有加载文件。

关于如何解决问题的建议?提前致谢。

<body>
for output
<div id="forOutput"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
 var output;
 $(document).ready(function(){
  alert("JQuery loaded");
 });
 $.getJSON('C:\Users\Spencer\Desktop\JSJqueryTesting\JSONTesting\users.json', function(data) {
  output = data;
for (var i in data.users) {
 alert(data.users[i].firstName + " " + data.users[i].lastName+ " " + data.users[i].joined.month);
    }
});
 $("#forOutput").html("User 1 lastname: " + output.users[1].lastName);
</script>

1 个答案:

答案 0 :(得分:0)

文件扩展名是完美的(.json),但是,您无法加载本地文件(出于安全原因)。如果你想做的事情是可能的,那就意味着任何网站都可以访问所有你的本地文件。现在这确实不是一个好主意,因此(默认情况下)只允许共享同一域的文件(例如stackoverflow.com/*)。这称为Same Origin Policy