我有一个file.json
内容:
{
"a":{"var1":"Sábado"},
"b":{"var2":"Domingo"}
}
考虑到我无法编辑file.js
,我需要想办法将该文件中包含的 json 加载到变量mj
中,以便alert(mj["a"].var1)
向我显示消息Sábado
。
更新:这是否可以在不使用 JQuery、Prototype 或任何其他 js 库的情况下完成?
我有一个file.json
内容:
{
"a":{"var1":"Sábado"},
"b":{"var2":"Domingo"}
}
考虑到我无法编辑file.js
,我需要想办法将该文件中包含的 json 加载到变量mj
中,以便alert(mj["a"].var1)
向我显示消息Sábado
。
更新:这是否可以在不使用 JQuery、Prototype 或任何其他 js 库的情况下完成?
这是普通的 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);
好吧,我想到的最简单的事情是创建一个带有 json 源的 iframe,并在加载事件时使用 javascript 访问它的内容以分配到一个变量中,或者手动实现一个常见的 JSFramework 会做什么......
您向file.json
usingXMLHttpRequest
对象发出正常的 ajax 请求。在onreadystatechange
函数中编写评估逻辑以接收 json 并分配给变量。
eval 语句看起来像
var data = eval ('(' + xhr.responseText + ')');
如果您不确定如何使用 ajax,请浏览以下页面:http: //www.w3schools.com/ajax/default.asp
编辑:乔纳森的回答似乎是一种推荐的方法;当时我并没有想到这个答案。使用JSON.parse()
而不是eval()
.
var data = JSON.parse(xhr.responseText);