我有file.json
内容:
{
"a":{"var1":"Sábado"},
"b":{"var2":"Domingo"}
}
考虑到我无法编辑file.js
,我需要找出一种方法将该文件中包含的json加载到变量mj
中,以便alert(mj["a"].var1)
向我显示消息Sábado
。
更新: 这是否可以使用JQuery,Prototype或任何其他js库来完成没有?
答案 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);