Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 构建并美化JSON对象_Jquery_Json_Object - Fatal编程技术网

Jquery 构建并美化JSON对象

Jquery 构建并美化JSON对象,jquery,json,object,Jquery,Json,Object,我试图使用ajax请求构建一个JSON对象,然后打印出经过修饰的数据,以便于阅读 以下是我所拥有的: var url, data; var shows = ["stranger things", "the night of"]; var json = {}; $.each(shows, function(i, show) { url = 'https://www.omdbapi.com/?t=' + show + '&type=series&plot=short' $.

我试图使用ajax请求构建一个JSON对象,然后打印出经过修饰的数据,以便于阅读

以下是我所拥有的:

var url, data;
var shows = ["stranger things", "the night of"];
var json = {};

$.each(shows, function(i, show) {
  url = 'https://www.omdbapi.com/?t=' + show + '&type=series&plot=short'
  $.ajax(url, {
    complete: function(obj, status){
      data = $.parseJSON(obj.responseText);
      json.push(obj.responseText);
      console.log(data);
    }
  });  
});

var jsonPretty = JSON.stringify({shows: json}, null, '\t');
$("pre").text(jsonPretty);

问题出在json.push(obj.responseText)附近,但我找不到解决办法

有什么想法吗?

  • 你不能推入物体;您可以将其推入阵列

    var json = [];
    
  • 您的
    .text(jsonPretty)
    来得太早了。将其移动到
    complete
    处理程序中

      • 你不能推入物体;您可以将其推入阵列

        var json = [];
        
      • 您的
        .text(jsonPretty)
        来得太早了。将其移动到
        complete
        处理程序中


      首先,对象初始化错误: 应该是
      var json=[]

      另外,由于默认情况下ajax请求是异步的,因此同时执行以下代码,此时
      json
      的值为空

      var jsonPretty = JSON.stringify({shows: json}, null, '\t');
      $("pre").text(jsonPretty);
      
      因此,您可以使ajax请求同步,也可以在执行代码之前检查最后一次显示:

      if(showsLength == i + 1){
          var jsonPretty = JSON.stringify({shows: json}, null, '\t');
          $("pre").text(jsonPretty);
      }
      
      演示

      这里是另一种方法(同步请求)

      演示


      啊,我现在明白了。谢谢你的帮助,山姆!有办法去吗 删除斜线\“?–Jon 10分钟前

      看到这些斜杠的原因是,您正在字符串化一个字符串而不是一个对象,因此要解决这个问题,您需要在推送时将其设置为json对象

      data = $.parseJSON(obj.responseText);
      json.push(data);
      

      演示:

      首先,对象初始化错误: 应该是
      var json=[];

      另外,由于默认情况下ajax请求是异步的,因此同时执行以下代码,此时
      json
      的值为空

      var jsonPretty = JSON.stringify({shows: json}, null, '\t');
      $("pre").text(jsonPretty);
      
      因此,您可以使ajax请求同步,也可以在执行代码之前检查最后一次显示:

      if(showsLength == i + 1){
          var jsonPretty = JSON.stringify({shows: json}, null, '\t');
          $("pre").text(jsonPretty);
      }
      
      演示

      这里是另一种方法(同步请求)

      演示


      啊,我现在明白了。谢谢你的帮助,山姆!有办法吗 删除斜杠\“?–乔恩10分钟前

      看到这些斜杠的原因是,您正在字符串化一个字符串而不是一个对象,因此要解决这个问题,您需要在推送时将其设置为json对象

      data = $.parseJSON(obj.responseText);
      json.push(data);
      

      演示:

      啊,我现在明白了。谢谢你的帮助,山姆!有没有办法删除斜杠\“?我刚刚用一个演示更新了答案,告诉你这些斜杠的原因是什么啊,有道理!谢谢你的帮助!没问题,很高兴我能帮忙。啊,我现在明白了。谢谢你的帮助,山姆!有没有办法删除斜杠\”?我刚刚用一个演示更新了答案,向您展示了这些斜杠的原因是什么啊,有道理!谢谢你的帮助!没问题,很高兴我能帮忙。