从服务器请求JSON并用Javascript进行解析

Requesting JSON from server and parsing in Javascript

本文关键字:Javascript 并用 服务器 请求 JSON      更新时间:2023-09-26

我正试图从服务器中提取json,并将其解析为Javascript对象。我的json是这样的:

{
  "tour1": [
    {
      "title": "building1",
      "description": "Tour of building1",
      "image": "Icon.png",
      "video": "tour.mp4",
      "length": "0.00",
      "version": "1.0",
      "timestamp": "1111111111"
    }
  ]
}

以下是对服务器的请求:

<!DOCTYPE html>
<html>
<body>
    <h2>Parse JSON from Server</h2>
    <p id="demo"></p>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">                      </script>
    <script>
        $.ajax({
            url: "mysite.com/videos/tour.json";
        var j = [];
        $.ajax({
            type: 'GET',
            url: url,
            dataType: 'json',
        });
        window.alert(j.tour1[0].title);
    </script>
</body>
</html>

我不明白为什么它不起作用。我是javascript的新手。我感谢在这个问题上提供的任何帮助。

我认为,当您想使用GET HTTP请求从服务器加载JSON编码的数据时,如果您使用getJson会更好,请查看下面的示例:

$.getJSON( "mysite.com/videos/tour.json", function( j ) {
     alert( j.tour1[0].title );
});

希望这能有所帮助。

Ajax调用是一个异步调用,在Ajax语句结束后不会立即填充j。

使用Ajax的成功处理程序提醒j(未测试代码)

$.ajax({
  url: "mysite.com/videos/tour.json",
  method: "GET",
  dataType: "JSON",
  success: function( data ){
    window.alert(data.tour1[0].title);
  }
});

gurvinder给出了最佳解决方案,因为如果您正在激发ajax请求,那么您必须捕获响应,但如果您在代码中发出警报,则您的请求仍在工作,并且j必须未定义,因为它不是全局变量。有很多错误:

  1. 检查您的ajax synthax,因为"varj."的声明是错误的
  2. 永远不要在对象声明中使用";",始终使用","
  3. 在您的警报中,您试图找到一个变量"j",但j不存在,它是未定义的