javascript - 将整个 json 文件作为数组加载到变量中

标签 javascript jquery arrays json variables

我想获取外部 json 文件 (locations.json) 并将内容加载到变量中。然后,我想使用此处提供的信息来使用此变量:http://www.json.org/js.html

我在尝试将外部 json 加载到变量时遇到了很多麻烦。我已经仔细查看了这个( load json into variable )页面,但没有一个页面真正填充了该变量。当稍后显示变量的内容时,它看起来是空的。

$("#testContain").html("<p>" + json + "</p>");

使用最后一个链接中列出的方法,这会显示“未定义”。

我使用的 json 文件如下所示:

[{"id":"1","locname":"Dunstable Downs","lat":"51.8646","lng":"-0.536957","address":"Chiltern Gateway Centre","address2":"","city":"","state":"England","postal":"","phone":"","web":"http:\/\/www.nationaltrust.org.uk\/main\/w-dunstabledownscountrysidecentrewhipsnadeestate","hours1":"","hours2":"","hours3":""},
{"id":"2","locname":"West Delta Park","lat":"45.5974","lng":"-122.688","address":"N Broadacre St and N Expo Rd, Portland","address2":"","city":"","state":"OR","postal":"","phone":"","web":"http:\/\/en.wikipedia.org\/wiki\/Delta_Park","hours1":"","hours2":"","hours3":""}]

大家有什么建议吗?

最佳答案

问题是请求是异步的。您可以按照您链接到的问题的已接受答案的建议进行同步调用,但这通常不是一个好主意,因为它会在等待响应时完全卡住浏览器。

变量分配得很好,但是当你在请求之后使用它时,你必须确保它是在得到响应之后,而不是在发送请求之后。在 getJSON 方法的回调中使用值是确保您拥有该值的最简单方法:

var my_json;
$.getJSON(my_url, function(json) {
  my_json = json;
  // here you have the value
});
// here you don't have the value, as this happens before the response arrives

关于javascript - 将整个 json 文件作为数组加载到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13675589/

相关文章:

javascript - 如何在ajax调用之间传递参数

JavaScript 程序图像

jquery - 使用 jQuery 根据选择选项的更改切换要禁用的输入?

jquery - CakePHP 的 AJAX POST 请求导致 400 响应(黑洞)

javascript - 是否可以在 JavaScript 中获取定义的 Symbol 的描述值?

php - PHP 中的日历

jquery - 如何使用 mvc 中的部分 View 为动态添加的行分配唯一的 id

javascript - 如何使用 flatmap lodash 获取 ArrayObject 所有值

java - Android Studio 调试器复制数组的值

javascript - 比较 2 个对象以在 javascript 中创建一个新的对象数组