当前位置: 首页 > 面试题库 >

将json载入变量

庄高谊
2023-03-14
问题内容

我必须做一些非常简单的事情,但是据我所知,似乎没有一个简单的方法可以做到这一点。我只想从远程源加载JSON数据,然后使用jQuery将其存储在全局Javascript变量中。这是我所拥有的:

var my_json;
$.getJSON(my_url, function(json) {
  var my_json = json;
});

my_json变量保持未定义。我认为这显然是一个范围问题。在我看来,$
.getJSON方法应该返回JSON,但它返回一个XMLHttpRequest对象。如果我这样做:

request = $.getJSON(my_url);
my_json = request.responseText.evalJSON();

那是行不通的,因为直到readystate ==
4为止,responsetext仍然为null。似乎您必须使用回调函数来返回responsetext,因为它会在成功时触发。

不可能这么难!对?


问题答案:

这样做:

var json = (function () {
    var json = null;
    $.ajax({
        'async': false,
        'global': false,
        'url': my_url,
        'dataType': "json",
        'success': function (data) {
            json = data;
        }
    });
    return json;
})();

主要问题是$.getJSON它将异步运行,因此,即使在其success回调触发之前,您的Javascript也会经过调用它的表达式之后,因此无法保证您的变量将捕获任何数据。

请特别注意'async': false上述ajax调用中的选项。该手册说:

默认情况下,所有请求都是异步发送的(即默认情况下设置为true)。如果需要同步请求,请将此选项设置为false。请注意,同步请求可能会暂时锁定浏览器,从而在请求处于活动状态时禁用任何操作。



 类似资料:
  • 问题内容: 我正在尝试将.json文件加载到javascript中的变量中,但无法正常工作。这可能只是一个小错误,但我找不到它。 当我使用静态数据时,一切工作正常: 我把一切的在一个文件,并试图以加载到本地JavaScript变量作为解释在这里:负载JSON转换成变量。 我使用Chrome调试器运行它,它总是告诉我该变量的值为。该文件与调用它的.js文件位于同一目录中。 我错过了什么? 问题答案:

  • 大家好!我想做多朗登陆页。当您选择语言时,会出现select with LANGS,JS将文本替换为JSON文件中的另一个语言。但当我尝试加载JSON时,JSON和JS出现了问题。我读了很多指南,但没有任何帮助。我拥有的:有一个json文件-lang.json。以下是其中的一部分: 我有main.js文件,上面的JSON文件应该作为var导入。我使用了其他人的脚本:将本地JSON文件加载到变量中,

  • 问题内容: 按照标题,将HTML放入JSON是否被视为一种好习惯?我需要这样做的原因是因为我想要一个自定义下拉列表,其中列表来自用户输入,而json看起来像这样: 并且我有以下foreach(请记住,这是我的代码的精简版,已经进行了验证,但是出于这个问题,我将其取出) 我担心的是,可能会有一些特殊字符可能会破坏JSON字符串。请帮忙。 问题答案: 您不会是第一个这样做的人,当然也不会是最后一个。

  • 问题内容: 我似乎无法使用户输入的数据进入表然后进行打印。 到目前为止,这是我的代码: 我从这里得到了“模板” /开始 解决以下 现在,我想向表中添加两个变量,即原始日志变量和另一个用作时间戳记的变量。 其余代码与上面相同。我认为这会起作用,但是当我测试它时,表中什么也没有。 问题答案: 我认为您只需要更改获取和插入值的方式即可(另外,此行的SQL中存在语法错误): 我认为您可以完全忘记该变量,除

  • 转换为json格式。