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

使用Jquery从本地文件获取JSON对象

师建德
2023-03-14
问题内容

我正在尝试使用Jquery从本地文件中获取JSON对象(产品)的列表,并将所有对象存储在称为allItems的单个数组中。该文件与代码位于同一目录中,称为“
allItems.json”。这是我现在的做法:

function getAllSupportedItems(){
    var allItems = new Array();
    $.getJSON("allItems.json",
         function(data){
             $.each(data.items, 
             function(item){
                 allItems.push(item);
             });
         });
    return allItems;
}

基于此示例:http :
//api.jquery.com/jQuery.getJSON/


问题答案:

为了getAllSupportedItems能够返回任何项目,AJAX调用需要同步运行。

getJSON 转换为以下异步调用

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});

异步是默认设置。因此,您需要将您的请求显式更改为同步请求:

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback,
  async: false
});

另一种选择是重新考虑您的使用方式,getAllSupportedItems并使其成为异步实用程序:

function getAllSupportedItems(callback){
    $.getJSON("allItems.json",
         function(data){
             var allItems = [];
             $.each(data.items, 
             function(item){
                 allItems.push(item);
             });
             callback(allItems);
             // callback(data.items); should also work
         });
}

更新资料

当我最初编写此答案时,jQuery没有内置的Deferred支持。今天做这样的事情更加简洁和灵活:

function getAllSupportedItems( ) {
    return $.getJSON("allItems.json").then(function (data) {
        return data.items;
    });
}

// Usage:
getAllSupportedItems().done(function (items) {
    // you have your items here
});


 类似资料:
  • 请不要使用“tika”作为答案。我已经尝试了这个问题的答案: 如何从PDF文件中提取文本? 我有这个PDF文件,https://drive.google.com/file/d/1aUfQAlvq5hA9kz2c9CyJADiY3KpY3-Vn/view?usp=sharing,我想复制文本。 输出为“提交日期:2019-10-21 16:03:36.093 |表单键:5544”,这只是文本的一部分

  • 问题内容: 我想从本地计算机上的JSON文件中获取数据。但是我无法获取数据。它显示了$ http的某些跨域错误。 这是我的代码。 任何人都可以帮助我如何显示本地JSON文件中的数据?提前致谢。 问题答案: 很简单,就像

  • 本文向大家介绍详解vue中使用express+fetch获取本地json文件,包括了详解vue中使用express+fetch获取本地json文件的使用技巧和注意事项,需要的朋友参考一下 自己在做个vue小demo的时候,想模拟从服务器获取json数据的过程,一开始的想法是使用fetch直接获取本地的json文件,无论是install了json-loader还是把json文件放在index.htm

  • 问题内容: 我在应用程序的一种方法中使用Python的请求库。该方法的主体如下所示: 我想为该方法编写一些单元测试,但是,我想做的是传递一个伪本地URL,例如: 当我使用本地URL调用 requests.get 时,出现以下 KeyError 异常: 问题是如何将本地URL传递给 request.get ? PS:我整理了上面的示例。它可能包含许多错误。 问题答案: 正如@WooParadog解释

  • 问题内容: 我正在尝试使用PHP从以下JSON文件中获取数据。我特别想要“ temperatureMin”和“ temperatureMax”。 这可能真的很简单,但是我不知道该怎么做。我被困在file_get_contents(“ file.json”)之后该做什么。一些帮助将不胜感激! 问题答案: 使用以下命令获取JSON文件的内容: 现在使用解码JSON : 您有一个包含所有信息的关联数组。

  • 问题内容: 我有成千上万个包含多个JSON对象的文本文件,但是不幸的是,这些对象之间没有分隔符。对象存储为字典,它们的某些字段本身就是对象。每个对象可能具有可变数量的嵌套对象。具体来说,一个对象可能看起来像这样: 并在文本文件中串联了数百个这样的对象而没有分隔符。这意味着我既不能使用也不可以。 关于如何解决此问题的任何建议。是否有已知的解析器可以执行此操作? 问题答案: 这将从字符串中解码您的JS