5

我有一个file.json内容:

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

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

更新:这是否可以在使用 JQuery、Prototype 或任何其他 js 库的情况下完成?

4

3 回答 3

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);
于 2013-08-18T05:06:14.557 回答
0

好吧,我想到的最简单的事情是创建一个带有 json 源的 iframe,并在加载事件时使用 javascript 访问它的内容以分配到一个变量中,或者手动实现一个常见的 JSFramework 会做什么......

于 2013-08-17T23:33:28.093 回答
0

您向file.jsonusingXMLHttpRequest对象发出正常的 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);
于 2013-08-18T00:35:36.453 回答