如何将文件中的json加载到变量中

时间:2013-08-17 23:05:26

标签: javascript json

我有file.json内容:

{
  "a":{"var1":"Sábado"},
  "b":{"var2":"Domingo"}
}

考虑到我无法编辑file.js,我需要找出一种方法将该文件中包含的json加载到变量mj中,以便alert(mj["a"].var1)向我显示消息Sábado

更新: 这是否可以使用JQuery,Prototype或任何其他js库来完成没有

3 个答案:

答案 0 :(得分:1)

这是普通的js,(没有使用eval),甚至应该跨域工作:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "file.js"; /*url of your js/jsonp file */
var head = document.getElementsByTagName('head')[0];
head.insertBefore(script, head.firstChild);

答案 1 :(得分:0)

嗯,我想到的最容易的事情就是创建一个带有json源代码的iframe,并在load事件中使用javascript访问它的内容以在变量中赋值,或者手动实现常见的JSFramework会做什么。

答案 2 :(得分:0)

使用file.json对象向XMLHttpRequest发出正常的ajax请求。在onreadystatechange函数中编写你的eval逻辑来接收json并赋值给变量。

eval语句看起来像

var data = eval ('(' + xhr.responseText + ')');

如果您不确定如何使用ajax,请浏览以下页面:http://www.w3schools.com/ajax/default.asp

编辑: 乔纳森的回答似乎是一种推荐的方法;那个答案当时没有出现在我的脑海里。使用JSON.parse()代替eval()

var data = JSON.parse(xhr.responseText);